2012-01-15 9 views
23

किसी को, मुझे दिखाओ कृपया अगर वहाँ मैं क्या below-मोंगोडीबी के लिए आधिकारिक सी # चालक का उपयोग करके 'आईडी' द्वारा 'दस्तावेज़' को कैसे हटाया जाए?

var query = Query.EQ("_id", a.Id); 
database.GetCollection<Animal>("Animal").Remove(query); 

इस कोड काम करता है, लेकिन मेरे लिए बहुत ज्यादा काम लगता है की तुलना में Official C# Driver का उपयोग कर MongoDB से एक document दूर करने के लिए एक बेहतर तरीका है। उदाहरण के लिए "सेव" कमांड - एक उदाहरण लेता है और इसे अपडेट करता है। मुझे कुछ चाहिए- Remove(item)

टिप्पणी: मैं नहीं बल्कि NoRM या Samus जो पुराना हो चुका लगता है की तुलना में की सी # आधिकारिक ड्राइवर का उपयोग करने के लिए कोशिश कर रहा हूँ।

उत्तर

32

यही तरीका है कि आप इसे करते हैं। मुझे यकीन है कि तुम यह जानते हूँ, लेकिन आप एक प्रश्न चर को परिभाषित करने की जरूरत नहीं है यह जोड़ सकता है अगर आप एक पंक्ति पर डाल करना चाहते हैं:,

collection.Remove(Query.EQ("_id", a.Id)); 
+0

मैं एक क्षेत्र _ id के अलावा अन्य द्वारा दूर करने के लिए कोशिश कर रहा हूँ, और मैं Query.EQ ("FIELDNAME", मूल्य) की कोशिश की लेकिन यह नहीं था काम नहीं करता मैं कैसे करूं? वास्तव में, आपका कोड एक ही त्रुटि देता है: "केवल कक्षाओं को वर्तमान में मैप किया जा सकता है।" –

+0

क्या आप आयात का उपयोग कर सही उपयोग कर रहे हैं? –

+0

मुझे अभी एहसास हुआ कि मैंने उपरोक्त क्वेरी.ईक्यू() पर एक linq क्वेरी का उपयोग नहीं किया है, और मुझे लगता है कि यह समस्या थी क्योंकि जब मैंने इसे Query.EQ() क्वेरी में बदल दिया तो यह काम करता था। आपकी सहायता के लिए धन्यवाद. –

17

[id] स्ट्रिंग है, तो आप ऑब्जेक्टआईडी उदाहरण स्पष्ट रूप से उपयोग करना चाहिए।

var query = Query.EQ("_id", ObjectId.Parse(id)); 
+0

मुझे कोई समस्या थी कि यह उत्तर ठीक करता है। धन्यवाद। Upvoted। –

10

सरल रास्ता सी # MongoDB.Driver संस्करण 2.0 या बाद यह के लिए एक collection से एक document दूर करने के लिए

collection.DeleteOne(a => a.Id==id); 
0

मेरे ASP.NET कोर MVC नियंत्रक की कार्रवाई एक के रूप में स्वीकार करता है ईद स्ट्रिंग पैरामीटर। तब मैं यह पार्स और() DeleteOne में परिणाम का उपयोग बयान:

[HttpPost] 
public IActionResult Delete(string id) 
{ 
    ObjectId objectId = ObjectId.Parse(id); 
    DbContext.Users.DeleteOne(x => x.Id == objectId); 
    return null; 
} 
संबंधित मुद्दे

 संबंधित मुद्दे