原子単位で整数フィールドを増やす方法はありますか? FindAndModifyメソッドは役に立ちますか?MongoDB:整数フィールドを増やす(C#)
たとえば、ドキュメントにはフィールドcount
が含まれています。ドキュメント全体を取得して元に戻すことなく、ドキュメントを増やしたいと考えています。
原子単位で整数フィールドを増やす方法はありますか? FindAndModifyメソッドは役に立ちますか?MongoDB:整数フィールドを増やす(C#)
たとえば、ドキュメントにはフィールドcount
が含まれています。ドキュメント全体を取得して元に戻すことなく、ドキュメントを増やしたいと考えています。
コメントを残しましたが、見つかりました。 $inc
修飾子はフィールドを内部的にインクリメントします。この正確な目的のために完全に原子的に。
ここで他の誰かがそれを必要とするだけの場合には、C#のドライバのバージョン2.1.0を使用していくつかのコードですPaysteyからの回答をもとに、ここで"Monog DB Atomic Operations"
を参照してください、はい
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;
をありがとう、しかし、私はどのようにそれをC# – Edward83
あなたが特定のドライバのヘルプをしたいと思って、それを行うには見つかりませんでした、あなたは他の修飾子のように使用する必要があります。私が追加したリンクを見てください。あなたはインクリメントしたい '$ inc'にフィールドを渡すだけです。それはかなり標準的な機能であり、あなたのドライバーでそれほど異なっていてはいけません。あなたの質問にいくつかのコードを投稿すると、おそらくそれを理解することができます。 – Paystey
Paystey、ありがとう、更新を使用した例が見つかりましたhttp://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTutorial-Updateemethod – Edward83