एक बेहतर समाधान यह होगा कि _id . को छोड़ दिया जाए कॉलम जैसा है वैसा ही है और अलग userId . है और फ़ोल्डर आईडी अपने दस्तावेज़ में फ़ील्ड, या उन दोनों को मिलाकर एक अलग फ़ील्ड बनाएँ।
जैसे कि यह "जितना तेज़" होगा ... आपकी क्वेरी पर निर्भर करता है, लेकिन उदाहरण के लिए दस्तावेज़ की "बनाने" तिथि तक ऑर्डर करने के लिए आप केवल _id द्वारा ऑर्डर करने की क्षमता खो देंगे आप शार्डिंग और वितरण के लाभों को भी खो देंगे। ।
हालांकि यदि आप उन दोनों आईडी का उपयोग अपनी _id . के लिए करना चाहते हैं एक और विकल्प है...
आप वास्तव में दोनों का उपयोग कर सकते हैं लेकिन उन्हें अलग छोड़ दें ... उदाहरण के लिए यह एक मान्य _id . है :
> var doc = { "_id" : { "userID" : 12345, "folderID" : 5152 },
"field1" : "test", "field2" : "foo" };
> db.crazy.save(doc);
> db.crazy.findOne();
{
"_id" : {
"userID" : 12345,
"folderID" : 5152
},
"field1" : "test",
"field2" : "foo"
}
>