मान लीजिए कि मैं नामक एक संग्रह में निम्नलिखित दस्तावेज़ स्कीमा करते हैं 'उन':MongoDB: एम्बेडेड सरणी के अंदर वस्तुओं को क्वेरी और पुनर्प्राप्त करें?
{
name: 'John',
items: [ {}, {}, {}, ... ]
}
'आइटम' सरणी निम्न स्वरूप में वस्तुओं में शामिल हैं:
{
item_id: "1234",
name: "some item"
}
प्रत्येक उपयोगकर्ता से अधिक आइटम हो सकता है 'आइटम' सरणी में एम्बेडेड।
अब, मैं किसी दिए गए उपयोगकर्ता के लिए item_id द्वारा किसी आइटम को लाने में सक्षम होना चाहता हूं।
उदाहरण के लिए, मैं आईडी "1234" के साथ आइटम प्राप्त करना चाहता हूं जो उपयोगकर्ता "जॉन" नाम से है।
क्या मैं इसे mongoDB के साथ कर सकता हूं? मैं अपने शक्तिशाली सरणी अनुक्रमण का उपयोग करना चाहता हूं, लेकिन मुझे यकीन नहीं है कि क्या आप एम्बेडेड सरणी पर क्वेरी चला सकते हैं और उस दस्तावेज़ के बजाय सरणी से वस्तुओं को वापस कर सकते हैं।
मुझे पता है कि मैं उन उपयोगकर्ताओं को ला सकता हूं जिनके पास {users.items.item_id: "1234"} का उपयोग करके एक निश्चित आइटम है। लेकिन मैं वास्तविक आइटम को सरणी से प्राप्त करना चाहता हूं, न कि उपयोगकर्ता।
वैकल्पिक रूप से, क्या इस डेटा को व्यवस्थित करने का एक बेहतर तरीका हो सकता है ताकि मैं आसानी से प्राप्त कर सकूं? मैं अभी भी mongodb के लिए काफी नया हूँ।
किसी भी मदद या सलाह के लिए धन्यवाद जो आप प्रदान कर सकते हैं।
संभव डुप्लिकेट: // stackoverflow.com/questions/3985214/mongodb-extract-only-the-selected-item-in-array) – Foreever
हैलो, @Nebs, क्या आप स्वीकृत उत्तर की समीक्षा कर सकते हैं और इसे बदल सकते हैं? क्योंकि नए मोंगोडब संस्करणों में दो अलग-अलग संग्रहों की आवश्यकता के बिना इस समस्या का समाधान है। –