2011-07-11 34 views
12

tôi đã chạy đoạn mã sau vào vỏ Mongo:

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

và bây giờ tôi đã một cái gì đó như thế này trong tôi Bộ sưu tập MongoDB:

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

Như bạn có thể thấy loves là một mảng.

Câu hỏi

Làm thế nào tôi có thể viết code C#, với C# lái ​​xe chính thức, nào sau đây:

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

Đoạn mã trên chỉ chạy tốt trong vỏ Mongo.

Trả lời

16

nó phải được một cái gì đó như thế này:

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

Cách thực hiện việc này hiện tại g C# driver 2.0.0 của mongodb? –

+0

@ Fazaz Ahmad xem câu trả lời dưới đây –

6

Tôi muốn cũng minh họa làm thế nào để làm điều đó bằng cách sử dụng cú pháp khác nhau

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

Có cách nào có thể thực hiện với 'Builder '? Nếu không, bạn cần xác định điều gì khi xác định đối tượng ('Unicorn' trong trường hợp này)? – arbitrarystringofletters

0

Để làm điều này với cú pháp cập nhật và thường xuyên BsonDocument s thay vì các đối tượng đã xác định, hãy sử dụng các mục sau:

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); 
Các vấn đề liên quan