मेटीर.जेएस आईडी के लिए अपने स्वयं के एल्गोरिदम का उपयोग क्यों करता है?Meteor.Collection.ObjectID() बनाम MongoDB ऑब्जेक्ट आईडी()
यह मोंगोडीबी के ऑब्जेक्ट आईडी() का उपयोग क्यों नहीं करता है?
मेटीर.जेएस आईडी के लिए अपने स्वयं के एल्गोरिदम का उपयोग क्यों करता है?Meteor.Collection.ObjectID() बनाम MongoDB ऑब्जेक्ट आईडी()
यह मोंगोडीबी के ऑब्जेक्ट आईडी() का उपयोग क्यों नहीं करता है?
उल्का वस्तु आईडी के लिए एक ही विधि का उपयोग करता आप इसका इस्तेमाल करते हैं, तो:
Meteor.Collection.ObjectID()
MongoDB के ObjectID
इसका रूप में ही है बस Meteor.Collection
नाम के तहत। यह सामान्य जेएसओएन में ऑब्जेक्ट आईडी को क्लाइंट एंड पर रखने के लिए EJSON का उपयोग करता है। क्योंकि मूल रूप से वहाँ उल्का के साथ 2 डेटाबेस हैं
Minimongo
इस ग्राहक अंत पर MongoDB का कैश का एक प्रकार है। ब्राउजर लोड होने पर डेटा को सर्वर पर मुख्य मोंगोडब से डाउनलोड किया जाता है। जब परिवर्तन किए जाते हैं तो उन्हें सर्वर पर धक्का दिया जाता है।
सर्वर MongoDB
इस सर्वर पर 10gen से मूल MongoDB
तो इसलिए है क्योंकि इन दो डेटाबेस उल्का Meteor.Collection
में MongoDB कार्यक्षमता लपेट और आप पर दोनों एक ही कोड का उपयोग करने देने की जरूरत है की ग्राहक और सर्वर।
डिफ़ॉल्ट उल्का ऑब्जेक्ट आईडी का उपयोग नहीं करेगा, यह यादृच्छिक अल्फान्यूमेरिक टेक्स्ट का उपयोग करेगा। ऐसा इसलिए किया जाता है ताकि आप अपने एचटीएमएल विशेषताओं में आईडी के अपने यूआरएल और आईडी में आसानी से उपयोग कर सकें।
यदि आप new Meteor.Collection.ObjectID()
का उपयोग करते हैं तो आपको ObjectID
ऑब्जेक्ट मिलेगा जो सर्वर अंत पर ऑब्जेक्ट आईडी के मोंगोडब के विनिर्देश का उपयोग करेगा। ऑब्जेक्ट आईडी में टाइमस्टैम्प मान नहीं रखा जाता है लेकिन यह वास्तव में कोई नुकसान नहीं करना चाहिए।
0.9.1 के बाद से उल्का के बजाय Mongo.ObjectID
का उपयोग करने का सुझाव दे रहा है। असल में दोनों एक ही हैं। नामकरण सम्मेलनों में अधिक परिवर्तनों के लिए history.md देखें।
हाँ, यह देखा, लेकिन यह पता लगाने में कठिन समय था कि _id स्ट्रिंग को कैसे प्राप्त करें। निम्नलिखित का इस्तेमाल किया। 'var newID = नया Mongo.ObjectID; item._id = newID._str; ' इस विषय के लिए धन्यवाद http://stackoverflow.com/questions/19236685/how-do-i-use-new-meteor-collection-objectid-in-my-mongo- प्रश्नों-साथ-उल्का – yankeyhotel
मैंने यह पता लगाने की कोशिश में एक अच्छा 20 मिनट बर्बाद कर दिया कि रेगेक्स '/^[0-9 ए-एफए-एफ] + $ /' मेरे ऑब्जेक्ट आईडी के साथ 'झूठी' क्यों लौट रहा है ... आप उल्का का उल्लेख करते हैं "यादृच्छिक अल्फान्यूमेरिक पाठ ", क्या यह जांचने के लिए कोई तर्क है कि दी गई स्ट्रिंग वैध आईडी है या नहीं? –
@BradM आप '/^[ए-ज़ा-जे 0-9] {17} $ /' के लिए जांच कर सकते हैं। यह पूरी तरह से अल्फान्यूमेरिक नहीं है, कभी भी _id में 0 या 1 नहीं देखा। मुझे लगता है कि एल और 1 की तरह दृश्यमान मिश्रित किए जा सकने वाले नंबरों का उपयोग नहीं किया जाता है। – Akshat