Фильтрация, изменение и добавление в одном вызове 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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