Я использую следующие пакеты:
- MongoDB.Driver - Версия = "2.7.2"
- MongoDB.Driver.Core - Версия = "2.7.2"
Моя модель выглядит примерно так:
data: {
field1 :"1"
},
history: [{
field1 :"0"
}]
Теперь я хочу создать определение обновления, которое берет текущий объект в «data» и вставляет его в массив «history».
Я знаю, как это сделать с абсолютными значениями ..:
var updateDef = Builders<Entity>.Update.Push(x => x.History, historyObject);
updateDef = updateDef.Set(x => x.Data, newDataModel);
Проблема в том, что я хочу, чтобы «historyObject» автоматически получался из поля «data» текущего документа.
Есть идеи?
Текущий обходной путь
Чтобы обойти эту проблему, я вначале выбираю документ и использую поле данных из результата.
Проблема в том, что если данные тем временем изменятся, мы перезапишем их с помощью операции .Set
, не передавая их в массив истории.