मैंने इस दो बार मोंगो संग्रह से उप-दस्तावेज़ अकेले लेने के बारे में उत्तर दिया है यहां , और यहांए>
बस वर्तमान में ऐसा करने का कोई तरीका नहीं है। यह बहु स्तरीय एम्बेडेड दस्तावेज़ को फ़िल्टर करने का व्यवहार है, आम तौर पर मेल खाने वाला फ़िल्टर पूरे दस्तावेज़ को वापस कर देगा, न कि सबसेट को।
इससे संबंधित मोंगो में पहले से ही दो बकाया मुद्दे हैं स्थानीय ($) ऑपरेटर रिटर्न स्पेसिफायर के लिए फ़ील्ड में और एक उप-दस्तावेज़ के डेटा का उपयोग करने की क्षमता जिसकी सामग्री का उपयोग $ ऑपरेटर का उपयोग करके किसी क्वेरी को संतुष्ट करने के लिए किया गया था . (यदि आपको वास्तव में इस सुविधा की आवश्यकता है तो वोट करने के लिए लॉग इन करें)
और आपका वैकल्पिक स्कीमा भी यहाँ उपयोगी नहीं है।
इसलिए आपको प्रत्येक सुविधा को इस तरह अलग दस्तावेज़ में संग्रहीत करना होगा ताकि यह आपके इच्छित तरीके से काम कर सके
फ़ीचर 1
{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 1',
'some_field' : 'zzz'
}
फ़ीचर 2
{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 2',
'some_field' : 'zzz'
}
और पूछताछ
db.features.find({'_id':someobjectid})
केवल विशिष्ट सुविधा लौटाएगा