如何以原子方式递增整数字段? FindAndModify方法有帮助吗?
例如,文档包含字段count
,我想在不检索完整文档并保存的情况下递增它。
答案 0 :(得分:2)
我确实发表了评论,但我找到了。 $inc
修饰符将在内部递增一个字段。完全原子地用于这个目的。
答案 1 :(得分:1)
根据Paystey的回答,这里有一些使用C#驱动程序版本2.1.0的代码,以防其他人需要它:
var filter = Builders<BsonDocument>.Filter.Eq("_id", id);
var update = new BsonDocument("$inc", new BsonDocument { { "votes", 1 } });
var coll = db.GetCollection<BsonDocument>("collection");
var doc = coll.FindOneAndUpdateAsync(filter, update).Result;