Я знаю, что могу атомарно обновить существующий документ Mongo, установив определенные поля. Следующий код сделает это:
var update = MongoDB.Driver.Builders.Update.Set("InsideLegMeasurement", 32.4);
SafeModeResult result = personCollection.Update(query, update, UpdateFlags.Multi,SafeMode.True);
Однако можно ли атомарно обновить несколько полей, передав документ, который я хочу «объединить» с существующим документом? Представьте, что у меня есть следующий документ:
{"favcolor": "red", "favfood": "pasta"} и я хочу обновить существующий документ этими значениями. Я хочу сделать это:
var update = MongoDB.Driver.Builders.Update.Merge({"favcolor":"red","favfood":"pasta"});
или даже
var update = MongoDB.Driver.Builders.Update.Merge(myUpdateBsonDoc);
где myBsonDocument содержит множество полей, которые я не хочу «распаковывать» из документа, который должен быть объединен с оригиналом.
Возможно ли это как-нибудь?
Спасибо