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 为 5546329b470000850084a6225546329b470000850084a6235546329b470000850084a624 的用户...这是来自 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

我不知道 ,但这 应该 工作 AFAIK:

{
  "_id" : {
      "$in" : [ {"$oid": "5546329b470000850084a622"},
                {"$oid": "5546329b470000850084a623"},
                {"$oid": "5546329b470000850084a624"} ]
  }
}