2011-12-22 7 views
0

は私が C#のクラスオブジェクトを使用したMongoDB udateクエリですか?

try 
{ 
    Sample risk = new Sample(); 
    risk.Name = "ABC"; 
    risk.Enable = true; 
    risk.Sender = "IBM"; 
    risk.Target = "CITI"; 
    MongoServer server = MongoServer.Create("mongodb://localhost"); 
    MongoDatabase db = server.GetDatabase("DATABASE"); 
    db.GetCollection<StockQuote>("SMAPLETABLE").Insert(risk); 
} 
catch (Exception e) 
{ 
    MessageBox.Show("Error"); 
} 

は今、私は、このいずれかを行うことができますどのように db.GetCollection<StockQuote>("SMAPLETABLE").Insert(risk);のように、同じクラスのインスタンスを更新したい、以下のようにMongoDBにクラスオブジェクトを格納しています。

1.Via Save方法とetire文書

db.GetCollection<StockQuote>("SMAPLETABLE").Save(risk); 

を更新2.Via atomic update:ドキュメントの更新部分

答えて

0

二つがありますが2つの更新文書に近づきます。

db.GetCollection<StockQuote>("SMAPLETABLE").Update(
             Query.EQ("Name", "ABC"), 
             Update.Set("Enable", false)); 

いくつかの注意:あなたがNameABC」との文書のEnableフィールド更新が必要な場合たとえば、原子更新して

  1. を、あなたは、並行性の問題を回避することができます。原子的な更新は、1つのドキュメント内のトランザクションのようなものです。
+0

IDモンゴーテーブルに4レコードありますが、特定のレコードのみを更新するにはどうすればいいですか?@Andrew Orsich – user483886

+0

@ user483886: _idフィールドはコレクション全体でユニークです。 –

+0

しかし、更新するときに特定のドキュメントを知っていれば、そのIDが記述されていますか?@ Andrew Orsich – user483886

関連する問題