ReactiveMongo:如何将 $in 运算符与 _id 一起使用
ReactiveMongo: How to use the $in operator with _id
假设我们需要找到一个id为5546329b470000850084a622
:
的用户
val selector = Json.parse("""{"_id":{"$oid":"5546329b470000850084a622"}}""")
users.find(selector).map {
...
}
Mongo shell 的等价物是
db.users.find( {_id: ObjectId("5546329b470000850084a622") } )
现在假设我们需要找到 ID 为 5546329b470000850084a622
、5546329b470000850084a623
和 5546329b470000850084a624
的用户...这是来自 Mongo shell:
db.users.find( {_id: {$in: [ObjectId("5546329b470000850084a622"), ObjectId("5546329b470000850084a623), ObjectId("5546329b470000850084a624)"]}})
响应式Mongo 的 JSON 是什么?这个?
{
"_id" : {
"$oid" : {
"$in" : [ "5546329b470000850084a622", "5546329b470000850084a623", "5546329b470000850084a624" ]
}
}
}
{"$oid":"5546329b470000850084a622"}
是 JSON 表示与 mongo
shell 中的 ObjectId("5546329b470000850084a622")
相同的事物。参见 http://docs.mongodb.org/manual/reference/mongodb-extended-json/#oid
我不知道 reactivemongo,但这 应该 工作 AFAIK:
{
"_id" : {
"$in" : [ {"$oid": "5546329b470000850084a622"},
{"$oid": "5546329b470000850084a623"},
{"$oid": "5546329b470000850084a624"} ]
}
}
假设我们需要找到一个id为5546329b470000850084a622
:
val selector = Json.parse("""{"_id":{"$oid":"5546329b470000850084a622"}}""")
users.find(selector).map {
...
}
Mongo shell 的等价物是
db.users.find( {_id: ObjectId("5546329b470000850084a622") } )
现在假设我们需要找到 ID 为 5546329b470000850084a622
、5546329b470000850084a623
和 5546329b470000850084a624
的用户...这是来自 Mongo shell:
db.users.find( {_id: {$in: [ObjectId("5546329b470000850084a622"), ObjectId("5546329b470000850084a623), ObjectId("5546329b470000850084a624)"]}})
响应式Mongo 的 JSON 是什么?这个?
{
"_id" : {
"$oid" : {
"$in" : [ "5546329b470000850084a622", "5546329b470000850084a623", "5546329b470000850084a624" ]
}
}
}
{"$oid":"5546329b470000850084a622"}
是 JSON 表示与 mongo
shell 中的 ObjectId("5546329b470000850084a622")
相同的事物。参见 http://docs.mongodb.org/manual/reference/mongodb-extended-json/#oid
我不知道 reactivemongo,但这 应该 工作 AFAIK:
{
"_id" : {
"$in" : [ {"$oid": "5546329b470000850084a622"},
{"$oid": "5546329b470000850084a623"},
{"$oid": "5546329b470000850084a624"} ]
}
}