Попробуйте следующее в оболочке Mongo (и попробовали на Java), чтобы обновить или вставить документ. Фильтр должен возвращать false, но я ожидаю, что документ будет создан из-за upsert = true
db.eventLogs.updateOne(
{monthid:"062017", elementid:123456},
{$push: {
events: {sensor1:"sensor1 value",
sensor2:"sensor2 value"
}
}
},
{Upsert:true} )
Оператор подтверждается, но в коллекцию ничего не вставляется, хотя Upsert = true.
Я явно идиот, так может ли кто-нибудь избавить меня от моих страданий?
Ява-версия...
Bson filter = Document.parse(argFilterJson);
Bson operations = Document.parse(argOperationsJson);
UpdateOptions options = new UpdateOptions().upsert(true);
return this.getCollection(argDBName, argCollectionName).updateOne(filter, operations, options);
Значения argFilterJson и argOperationsJson точно соответствуют оболочке.
Upsert
наupsert
- person s7vr   schedule 27.02.2017