使用MongoDB C#查找和修改

3

I am trying to replace the following code:

var R = Challenges.FindAll().SetSortOrder("UseCount").First();
var Q = Query.EQ("_id", R._id);
var U = Update.Inc("UseCount", 1);
Challenges.Update(Q, U);
return R;

这里的意图是:
我有一个名为“UseCount”的字段,我想找到数值最低的记录。如果有多条记录具有相同的值,则只需返回第一条(这不重要)。
同时,我想将“UseCount”字段加一。
我看过FindAndModify的示例,但它似乎是针对字段比较(即:“field”= value),而不是像我这样进行搜索。
什么是处理此操作的最佳/最有效方法?
1个回答

8
以下代码实现此功能(使用C# MongoDB.Driver 2.0):
var collection = database.GetCollection<BsonDocument>("product");
var filter = new BsonDocument();
var update = Builders<BsonDocument>.Update.Inc("UseCount", 1);
var sort = new FindOneAndUpdateOptions<BsonDocument>
{
            Sort = Builders<BsonDocument>.Sort.Ascending("UseCount")
};
await collection.FindOneAndUpdateAsync(filter, update, sort);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接