У меня есть проект с playframework 2.2.0
и play2-reactivemongo 0.10.0-SNAPSHOT
. Я хотел бы запросить несколько документов по их идентификаторам примерно так:
def usersCollection = db.collection[JSONCollection]("users")
val ids: List[String] = /* fetched from somewhere else */
val query = ??
val users = usersCollection.find(query).cursor[User].collect[List]()
В качестве запроса я пробовал:
Json.obj("_id" -> Json.obj("$in" -> ids)) // 1
Json.obj("_id.$oid" -> Json.obj("$in" -> ids)) // 2
Json.obj("_id" -> Json.obj("$oid" -> Json.obj("$in" -> ids))) // 3
для которых первый и второй возвращают пустые списки, а третий завершается с ошибкой assertion 10068 invalid operator: $oid
.
Json.obj("_id" -> Json.obj("$in" -> ids.map(BSONObjectID(_))))
? - person Dominik Bucher   schedule 31.10.2013Write[BSONObjectID]
в неявной области, аplay-reactivemongo
предлагает только частичный. Кроме того, написание одного кажется неэффективным, так как в этом случае вы будете выполнять преобразованиеBSONValue
->JsValue
->BSONValue
. - person mcveat   schedule 31.10.2013