2016-02-09 3 views
0

Я понятия не имею, как использовать play-reactivemongo's JSONFindAndModifyCommand.Как использовать JSONFindAndModifyCommand?

Мне нужно сделать запрос upsert некоторым полем. Поэтому я могу сначала удалить любую существующую запись, а затем вставить. Но Google говорит, что команда FindAndModify имеет upsert: Boolean вариант для достижения того же результата.

Предположим, у меня есть два play.api.libs.json.JsObject s: запрос и объект.

val q = (k: String) => Json.obj("sha256" -> k) 

val obj = (k: String, v: String) => Json.obj(
    "sha256" -> k, 
    "value" -> v 
) 

Тогда я:

db.collection.findAndModify(
    q(someSha256), 
    what?!, 
    ... 
) 

Я использую PLAY2-reactivemongo 0.11.9

Спасибо!

+0

Вы видели [пример] (https://github.com/ReactiveMongo/ReactiveMongo/blob/0.11.x/driver/samples/SimpleUseCasesSample.scala#L186)? – Mikesname

ответ

0

Проще использовать операции сбора findAndUpdate или findAndRemove, например.

val person: Future[BSONDocument] = collection.findAndUpdate(BSONDocument("name" -> "James"), BSONDocument("$set" -> BSONDocument("age" -> 17)), fetchNewObject = true) // on success, return the update document: // { "age": 17 } 

 Смежные вопросы

  • Нет связанных вопросов^_^