सरणी अनुक्रमणिका द्वारा खींचने/निकालने का कोई सीधा तरीका नहीं है। वास्तव में, यह एक खुला मुद्दा है http://jira.mongodb.org/browse/SERVER-1014 , आप इसके लिए वोट कर सकते हैं।
समाधान $unset और फिर $pull का उपयोग कर रहा है:
db.lists.update({}, {$unset : {"interests.3" : 1 }})
db.lists.update({}, {$pull : {"interests" : null}})
अद्यतन:जैसा कि कुछ टिप्पणियों में बताया गया है कि यह दृष्टिकोण परमाणु नहीं है और कुछ दौड़ की स्थिति पैदा कर सकता है यदि अन्य ग्राहक दो परिचालनों के बीच पढ़ते और/या लिखते हैं। अगर हमें परमाणु होने के लिए ऑपरेशन की आवश्यकता है, तो हम कर सकते हैं:
- डेटाबेस से दस्तावेज़ पढ़ें
- दस्तावेज़ को अपडेट करें और सरणी में आइटम को हटा दें
- दस्तावेज़ को डेटाबेस में बदलें। यह सुनिश्चित करने के लिए कि दस्तावेज़ पढ़ने के बाद से नहीं बदला है, हम अद्यतन का उपयोग कर सकते हैं यदि वर्तमान पैटर्न मोंगो डॉक्स में वर्णित है