2011-07-11 12 views
12

मैं निम्नलिखित कोड मोंगो खोल में सामना किया है:

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

और अब मैं में कुछ इस तरह है मेरी MongoDB संग्रह:

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

आप loves देख सकते हैं एक सरणी है।

प्रश्न

मैं सी # कोड कैसे लिख सकते हैं, सरकारी सी # चालक, जो निम्न करता है के साथ:

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

ऊपर कोड मोंगो खोल में ठीक चलाता है।

उत्तर

16

यह कुछ इस तरह होना चाहिए:

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

वर्तमान में यह चीज़ कैसे करें mongodb के जी सी # ड्राइवर 2.0.0? –

+0

@ फ़ारज़ अहमद –

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

से नीचे उत्तर देखें क्या यह एक तरीका है कि इसे 'बिल्डर ' के साथ किया जा सकता है? यदि नहीं, तो जब आप ऑब्जेक्ट को परिभाषित करते हैं तो निर्दिष्ट करने के लिए आपको क्या करना होगा (इस मामले में यूनिकॉर्न')? – 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); 
संबंधित मुद्दे