вставка не существует еще обновление Java Mongo 3.0

1

Я знаю, что этот вопрос задавали раньше и отвечал с опцией $ upsert. Что теперь больше не доступно???

Вставить достаточно просто, но как обновить документ, если он существует, и вставить, если он не существует? Я пробовал разные подходы безрезультатно.

Последнее, что я пробовал, это использовать collection.updateOne(..), который принимает два параметра типа Bson. Итак, тогда вам нужно будет преобразовать объект int Bson, используя toBsonDocument(), но какие параметры необходимо передать этому? Пример с 3.0 будет отличным...

Мой временный и обходной путь заключается в поиске и недоступности insertOne else updateOne...

  • 1
    Я искал, чтобы применить модификатор $ upsert, и это не работает. Однако это работает: <code> db.genres.update ({short: "POP"}, {$ set: {descr: "Pop Music"}}, {upsert: true}) </ code> должны быть переведены в : <code> BasicDBObject action = new BasicDBObject ("$ set", doc); Параметры UpdateOptions = новые UpdateOptions (); options.upsert (истина); db.genres.updateOne (фильтр, действие, параметры); </ code>
Теги:

1 ответ

2
Лучший ответ

это странно, потому что в API Documentation 3.0 параметр upsert все еще существует. DBCollection # обновление

Edit: ok Я предполагаю, что вы используете MongoCollection... вы должны использовать метод updateOne, а UpdateOptions - true.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню