2013-03-10 9 views

उत्तर

34

उल्का वस्तु आईडी के लिए एक ही विधि का उपयोग करता आप इसका इस्तेमाल करते हैं, तो:

Meteor.Collection.ObjectID() MongoDB के ObjectID

इसका रूप में ही है बस Meteor.Collection नाम के तहत। यह सामान्य जेएसओएन में ऑब्जेक्ट आईडी को क्लाइंट एंड पर रखने के लिए EJSON का उपयोग करता है। क्योंकि मूल रूप से वहाँ उल्का के साथ 2 डेटाबेस हैं

Minimongo

इस ग्राहक अंत पर MongoDB का कैश का एक प्रकार है। ब्राउजर लोड होने पर डेटा को सर्वर पर मुख्य मोंगोडब से डाउनलोड किया जाता है। जब परिवर्तन किए जाते हैं तो उन्हें सर्वर पर धक्का दिया जाता है।

सर्वर MongoDB

इस सर्वर पर 10gen से मूल MongoDB

तो इसलिए है क्योंकि इन दो डेटाबेस उल्का Meteor.Collection में MongoDB कार्यक्षमता लपेट और आप पर दोनों एक ही कोड का उपयोग करने देने की जरूरत है की ग्राहक और सर्वर।

डिफ़ॉल्ट उल्का ऑब्जेक्ट आईडी का उपयोग नहीं करेगा, यह यादृच्छिक अल्फान्यूमेरिक टेक्स्ट का उपयोग करेगा। ऐसा इसलिए किया जाता है ताकि आप अपने एचटीएमएल विशेषताओं में आईडी के अपने यूआरएल और आईडी में आसानी से उपयोग कर सकें।

यदि आप new Meteor.Collection.ObjectID() का उपयोग करते हैं तो आपको ObjectID ऑब्जेक्ट मिलेगा जो सर्वर अंत पर ऑब्जेक्ट आईडी के मोंगोडब के विनिर्देश का उपयोग करेगा। ऑब्जेक्ट आईडी में टाइमस्टैम्प मान नहीं रखा जाता है लेकिन यह वास्तव में कोई नुकसान नहीं करना चाहिए।

+0

मैंने यह पता लगाने की कोशिश में एक अच्छा 20 मिनट बर्बाद कर दिया कि रेगेक्स '/^[0-9 ए-एफए-एफ] + $ /' मेरे ऑब्जेक्ट आईडी के साथ 'झूठी' क्यों लौट रहा है ... आप उल्का का उल्लेख करते हैं "यादृच्छिक अल्फान्यूमेरिक पाठ ", क्या यह जांचने के लिए कोई तर्क है कि दी गई स्ट्रिंग वैध आईडी है या नहीं? –

+3

@BradM आप '/^[ए-ज़ा-जे 0-9] {17} $ /' के लिए जांच कर सकते हैं। यह पूरी तरह से अल्फान्यूमेरिक नहीं है, कभी भी _id में 0 या 1 नहीं देखा। मुझे लगता है कि एल और 1 की तरह दृश्यमान मिश्रित किए जा सकने वाले नंबरों का उपयोग नहीं किया जाता है। – Akshat

4

0.9.1 के बाद से उल्का के बजाय Mongo.ObjectID का उपयोग करने का सुझाव दे रहा है। असल में दोनों एक ही हैं। नामकरण सम्मेलनों में अधिक परिवर्तनों के लिए history.md देखें।

+0

हाँ, यह देखा, लेकिन यह पता लगाने में कठिन समय था कि _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

संबंधित मुद्दे