Фильтрация, изменение и добавление в одном вызове mongoDB из Java-приложения.JAVA

Программисты JAVA общаются здесь
Anonymous
Фильтрация, изменение и добавление в одном вызове mongoDB из Java-приложения.

Сообщение Anonymous »

У меня есть требование хранить данные в mongoDB, где те же данные (идентификатор и версия) поступают снова, они должны обновиться и изменить статус на соответствует. В первый раз статус должен быть ожидает.
Пример:
Когда данные поступают впервые, вставьте, как показано ниже. -

Код: Выделить всё

{
id:ABC
version:1
status:pending
}
Когда данные появятся в следующий раз, обновите их, как показано ниже.

Код: Выделить всё

   {
id:ABC
version:1
status:matched
}
Сегодня мы сначала получаем вызов и сравниваем его на уровне Java, а затем обновляем статус. Это ненужные два ввода-вывода для каждого ввода.
Можно ли это сделать за один вызов? Например, проверка условия и обновление при совпадении.
Я пытался добавить фильтры в некоторые поля и обновить за один вызов. Но об изменении значения статуса в случае совпадения я не знаю.

Код: Выделить всё

idFilter = Filters.eq("id", id)
verFilter = Filters.eq("version", version)
filters = Filters.and(idFilter, versionFilter)
options = UpdateOptions().upsert(true)
collection.updateOne(filters, bsonObj, options)
Любая помощь будет оценена по достоинству.

Подробнее здесь: https://stackoverflow.com/questions/788 ... pplication

Вернуться в «JAVA»