Как я должен использовать JSONFindAndModifyCommand?

Я понятия не имею, как я должен использовать play-реактивный монго JSONFindAndModifyCommand,

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

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

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-реактивный монго 0.11.9

Спасибо!

1 ответ

Проще использовать операции сбора 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 }
Другие вопросы по тегам