2011-07-11 59 views
12

我在蒙戈外殼運行下面的代碼:

db.unicorns.insert({name: 'Dunx', loves: ['grape', 'watermelon']}); 

,現在我有這樣的事情在我MongoDB集合:

{name: 'Dunx', loves: ['grape', 'watermelon']} 

正如你所看到的loves是一個數組。

問題

我怎麼能寫C#代碼,與官方的C#的驅動程序,即執行以下操作:

db.unicorns.update({name: 'Aurora'}, {$push: {loves: 'sugar'}}) 

上面的代碼運行在蒙戈外殼就好了。

回答

16

它應該是這樣的:

unicorns.Update(Query.EQ("name", "Aurora"), Update.Push("loves", "sugar")); 
+0

如何做到這一點目前usin g mongodb的C#驅動2.0.0? – 2015-08-23 17:36:05

+0

@Faraz Ahmad請參閱下面的回答 –

6

我想也說明了如何使用不同的語法

var filter = Builders<Unicorn> 
      .Filter.Eq(e => e.Name, "Aurora"); 

var update = Builders<Unicorn>.Update 
     .Push<String>(e => e.Likes, like); 

await fantasyContext.Unicorns.FindOneAndUpdateAsync(filter, update); 
+0

有沒有一種方法可以用'Builder '完成?如果不是的話,當你定義對象時需要指定什麼(在這種情況下是'Unicorn')? – arbitrarystringofletters

0

,將更新過的語法和規則BsonDocument就做這做而不是定義的對象,使用以下內容:

var filter = Builders<BsonDocument>.Filter.Eq("name": "Aurora"); 
var update = Builders<BsonDocument>.Update.Push("loves", "sugar"): 

// you can also use the async update method from Alex's answer here 
var result = fantasyContext.Unicorns.UpdateOne(filter, update); 
相關問題