gpt4 book ai didi

mongodb - 使用 Play-Reactivemongo 插件映射 MongoDB _id?

转载 作者:IT老高 更新时间:2023-10-28 13:29:42 26 4
gpt4 key购买 nike

我正在尝试使用 Play-ReactiveMongo 插件通过 Play 和 Angular 在 MongoDB 中读取/写入简单记录。该插件似乎是一个不错的选择,因为它允许您使用简单的案例类和常规 JSON,而不是在 BSON 和 JSON 之间显式转换。但使用该插件的几个示例似乎并未涵盖如何在同一框架内将 MongoDB 对象 ID 映射到 JSON 或从 JSON 映射。这一切似乎都可以在后台使用大量隐式(对我来说很神奇)读取/写入,但它们似乎无法处理对象 ID。

我的代码基于 Alex Lashford 的 Modern Web Template , 和 Stephan Godbillion's example using JSON Read/Writes 非常相似,但 Alex 和 Stephan 都没有显示与 MongoDB 对象 ID 有任何关系。

我的数据记录需要某种唯一 ID,因此我可以获取和更新它们等,使用 MongoDB 提供的 ID 是有意义的,但我似乎无法找到一种在内部干净地使用它的方法Play ReactiveMongo 插件。

是否有人知道一个示例,该示例展示了如何将 Play ReactiveMongo 插件与 JSON 集合一起使用,以及以某种方式将对象 ID 映射到 JSON 或从 JSON 映射,而无需将我的所有处理转换为使用 BSON?

最佳答案

我通过创建另一个 case 类解决了这个问题:

case class Id($oid: String)

然后按如下方式使用:

case class User(_id: Id, ...)

您必须导入 Json 转换器

implicit val idFormat = Json.format[Id]
implicit val userFormat = Json.format[User]

关于mongodb - 使用 Play-Reactivemongo 插件映射 MongoDB _id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com