Я хочу обновить различные поля на разных уровнях в глубине документа и применить все изменения одним вызовом. В идеале, драйвер должен пройти объектную модель с помощью моделей. Сохраните (модель) и определите изменения, но, похоже, это никак не повлияет на изменения, сделанные на 2 уровня в глубине графика.
Итак, я сейчас пытаюсь обновить весь документ с помощью этого подхода, и он не оказывает влияния. Любая идея о том, что будет правильный синтаксис?
var models = _database.GetCollection<Model>("Models");
var modelQuery = Query.EQ("_id", new ObjectId("4dfa2601dc1c791d40106a25"));
var model = models.FindOneAs<Model>(modelQuery);
// Apply various changes (including embedded docs)...
var dataRef = model.Objects.Find(Domain.Object.Reference);
dataRef.Set(Domain.Field.Reference.Name, "Some Ref Name");
models.Update(modelQuery, Update.Set("_id", BsonDocumentWrapper.Create(model)));