的價值我就與下面的語句INC的更新,增加一個字段MongoDB的C#驅動程序檢索增量更新
var update = Updates.Inc(x => x.Version, 1);
await collection.FindAndUpdateOneAsync(myQuery,update);
我想要從版本新(或舊)值的值。有沒有內置的方式來做到這一點?
由於事務性問題,我不想做出新的單獨查詢。
的價值我就與下面的語句INC的更新,增加一個字段MongoDB的C#驅動程序檢索增量更新
var update = Updates.Inc(x => x.Version, 1);
await collection.FindAndUpdateOneAsync(myQuery,update);
我想要從版本新(或舊)值的值。有沒有內置的方式來做到這一點?
由於事務性問題,我不想做出新的單獨查詢。
您可以試試findOneAndUpdate
與projection
選項返回文檔。
要返回舊值
db.collection.findOneAndUpdate(
{},
{ $inc: { Version: 1 } },
{ projection: { Version : 1 }}
)
要返回更新後的值,設定returnNewDocument
標誌真
db.collection.findOneAndUpdate(
{},
{ $inc: { Version: 1 } },
{ projection: { Version : 1 }, returnNewDocument : true }
)
這裏更多 https://docs.mongodb.com/manual/reference/method/db.collection.findOneAndUpdate/
這裏是怎麼做Veeram說,但在C# 。
var update = new UpdateDefinitionBuilder<Widget>().Inc(n => n.Version, 1);
var options = new FindOneAndUpdateOptions<Widget>();
options.ReturnDocument = ReturnDocument.After;
options.Projection = new ProjectionDefinitionBuilder<Widget>().Include(n => n.Version);
var result = col.FindOneAndUpdate<Widget>(n => true, update, options);