मुझे लगता है:
{
g: [
{ _id: ObjectId(), property: '' },
// next
]
}
इस प्रश्न के लिए संरचना का प्रकार।
सामान्य रूप से नहीं। _id
s संस्थाओं के लिए विशिष्ट पहचानकर्ता हैं। जैसे अगर आप _id
add जोड़ना चाह रहे हैं एक उप-दस्तावेज़ ऑब्जेक्ट के भीतर हो सकता है कि आपने अपने डेटा को बहुत अच्छी तरह से सामान्यीकृत नहीं किया हो और यह आपके स्कीमा डिज़ाइन के भीतर एक मौलिक दोष का संकेत हो।
उप-दस्तावेजों को उस दस्तावेज़ के लिए दोहराए जाने वाले डेटा, यानी पते या उपयोगकर्ता या कुछ और रखने के लिए डिज़ाइन किया गया है।
कहा जा रहा है _id
जोड़ने के लिए हमेशा एक बुरी चीज नहीं है। उदाहरण मैंने अभी-अभी पतों के साथ कहा है। कल्पना कीजिए कि आपके पास एक शॉपिंग कार्ट सिस्टम होना चाहिए और (किसी कारण से) आपने ऑर्डर दस्तावेज़ के पते को दोहराया नहीं तो आप एक _id
का उपयोग करेंगे या कोई अन्य पहचानकर्ता उस उप-दस्तावेज़ को बाहर निकालने के लिए।
इसके अलावा आपको दस्तावेजों को जोड़ने पर विचार करना होगा। अगर वह _id
किसी अन्य दस्तावेज़ का वर्णन करता है और गुण उस दस्तावेज़ के लिए उस लिंक किए गए दस्तावेज़ के संबंध में कस्टम विशेषताएँ हैं तो यह भी ठीक है।
एक ObjectId
अभी भी काफी बड़ा है, इसलिए एक छोटी, कम अद्वितीय आईडी या _id
का उपयोग नहीं करने पर विचार करने के लिए कुछ है उप-दस्तावेजों के लिए बिल्कुल।
इंडेक्स के लिए यह वास्तव में मानक _id
. से अलग काम नहीं करता है दस्तावेज़ पर ही फ़ील्ड और पूरे क्षेत्र में एक अद्वितीय अनुक्रमणिका को पूरे संग्रह में काम करना चाहिए (परिदृश्य पर निर्भर, अपने प्रश्नों का परीक्षण करें)।
ध्यान दें:MongoDB कोई _id
नहीं जोड़ेगा आपके लिए उप-दस्तावेजों के लिए।