2012-04-24 2 views

ответ

2

Я оставил комментарий, но я нашел его. Модификатор $inc будет увеличивать поле внутри. Полностью атомарно для этой цели.

Смотрите здесь "Monog DB Atomic Operations"

+0

да, спасибо, но Я не нашел, как сделать это на C# – Edward83

+0

ahh, где вам нужна специальная помощь с драйвером, вы должны использовать его, как и любой другой модификатор. См. Ссылку, которую я только что добавил, вы просто передаете поля в '$ inc', которые хотите увеличить. Это довольно стандартная функция и не должна быть слишком разной в вашем драйвере. Если вы разместите какой-то код по вашему вопросу, мы, вероятно, сможем это выяснить. – Paystey

+0

Paystey, спасибо, я нашел пример использования обновления http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTutorial-Updatemethod – Edward83

1

На основании ответа от Paystey здесь некоторый код, используя версию 2.1.0 драйвера C#, только в случае, если кто-то нуждается в этом:

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; 
Смежные вопросы