2012-04-24 20 views
1

原子単位で整数フィールドを増やす方法はありますか? FindAndModifyメソッドは役に立ちますか?MongoDB:整数フィールドを増やす(C#)

たとえば、ドキュメントにはフィールドcountが含まれています。ドキュメント全体を取得して元に戻すことなく、ドキュメントを増やしたいと考えています。

答えて

2

コメントを残しましたが、見つかりました。 $inc修飾子はフィールドを内部的にインクリメントします。この正確な目的のために完全に原子的に。

ここで他の誰かがそれを必要とするだけの場合には、C#のドライバのバージョン2.1.0を使用していくつかのコードですPaysteyからの回答をもとに、ここで"Monog DB Atomic Operations"

+0

をありがとう、しかし、私はどのようにそれをC# – Edward83

+0

あなたが特定のドライバのヘルプをしたいと思って、それを行うには見つかりませんでした、あなたは他の修飾子のように使用する必要があります。私が追加したリンクを見てください。あなたはインクリメントしたい '$ inc'にフィールドを渡すだけです。それはかなり標準的な機能であり、あなたのドライバーでそれほど異なっていてはいけません。あなたの質問にいくつかのコードを投稿すると、おそらくそれを理解することができます。 – Paystey

+0

Paystey、ありがとう、更新を使用した例が見つかりましたhttp://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTutorial-Updateemethod – Edward83

1

を参照してください、はい

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; 
関連する問題