Json.obj("$elemMatch" -> activ-6ren">
gpt4 book ai didi

mongodb - ReactiveMongo:使用游标 [BSONObjectID] 查找查询

转载 作者:可可西里 更新时间:2023-11-01 10:31:30 26 4
gpt4 key购买 nike

我使用 ReactiveMongo 的查询:

collection
.find(
Json.obj("relateds" -> Json.obj("$elemMatch" -> activityRelated)),
Json.obj("subscriberId" -> 1, "_id" -> 0)
)
.cursor[BSONObjectID]
.collect[Seq]()

这意味着为每个找到的文档只返回一个字段“subscriberId”。最终的输出类型应该是 Future[Seq[BSONObjectID]]

但它失败了:

失败(java.lang.RuntimeException:JsError(List((,List(ValidationError(未处理的json值,WrappedArray()))))))

任何想法如何做到这一点?

提前致谢

最佳答案

此查询的响应是对象序列,而不是值:

{ subscriberId : "foo" }

因此,您需要为该 id 定义具有单个字段的案例类,然后将游标类型设置为该案例类或尝试类似的操作:

collection
.find(
Json.obj("relateds" -> Json.obj("$elemMatch" -> activityRelated)),
Json.obj("subscriberId" -> 1, "_id" -> 0)
)
.cursor[JsValue]
.collect[Seq]()
.map(_.map(_.\("subscriberId").as[BSONObjectID]))

关于mongodb - ReactiveMongo:使用游标 [BSONObjectID] 查找查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23389846/

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