Обновить документ с его значением - PullRequest
1 голос
/ 12 марта 2020

Необходимо обновить документ на основе его значения

var filter = Builders<UnitTravelHistory>.Filter.Empty;
var update = Builders<UnitTravelHistory>.Update.Set(i => i.JobDuration, i.A-i.B)
DBContext.ClientDb.Repository<UnitTravelHistory>(collection).UpdateMany(filter, update);

, здесь A и B - 2 поля в коллекции. Кто-нибудь может предложить решение?

1 Ответ

0 голосов
/ 12 марта 2020

вам нужно использовать конвейерные обновления, чтобы ссылаться на поля обновляемого документа следующим образом:

var pipelineStage = BsonDocument.Parse("{$set:{JobDuration:{$subtract:['$A','$B']}}}");

collection.UpdateMany(
    _ => true, 
    Builders<UnitTravelHistory>.Update.Pipeline(new[] { pipelineStage })
);

вот альтернатива

...