2011-12-22 54 views
0

我在MongoDB中存储类对象像下面,在C#中使用类对象的MongoDB超时查询?

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);我如何能做到这一点。

回答

0

有两种方法两个更新文件:

1.Via Save方法和更新etire文件

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

atomic update 2.Via:文件更新部。例如,如果你需要更新的文件EnableNameABC”:

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

一些注意事项:

  1. 随着原子更新就可以避免并发问题。原子更新就像在一个文件中进行交易。
+0

如果我使用SAVE方法,id mongo表有4条记录,我怎样才能更新特定记录呢@ Andrew Orsich – user483886 2011-12-22 11:18:29

+0

@ user483886:当你使用'Save'时你实际上更新单个文档。 _id字段在整个集合中是唯一的。 – 2011-12-22 11:21:25

+0

但我怎么知道特定文件进行更新时,如果有提到ID ....?@安德鲁Orsich – user483886 2011-12-22 11:23:36