使用MongoDB C#查找和修改

时间:2015-05-30 00:34:06

标签: c# mongodb sorting

我正在尝试替换以下代码:

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'我想找到价值较低的记录。如果许多记录具有相同的值,我只想要第一个(它不重要) 我希望同时增加“使用数量”。一个字段。

我见过 FindAndModify 的例子,但它似乎与字段比较(即:"字段" =值),而不是像我一样的搜索。

处理此问题的最佳/最有效方法是什么?

1 个答案:

答案 0 :(得分:6)

以下代码(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);