MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

पायमोंगो uuid.uuid1() को बीएसओएन ::बाइनरी के रूप में क्यों एन्कोड करता है?

पायथन uuid . के लिए डिफ़ॉल्ट क्रमांकन एक UUID का उपयोग करता है बीएसओएन स्पेक में द्विआधारी प्रतिनिधित्व क्योंकि यह श्रेणी प्रश्नों के लिए लगातार छँटाई सुनिश्चित करता है, और डेटा/अनुक्रमणिका के लिए कम संग्रहण का भी उपयोग करता है।

उदाहरण के लिए, ये तीन तार हेक्स में समतुल्य हैं:

5d78ad35ea5f11e1a183705681b29c47
5D78AD35EA5F11E1A183705681B29C47
5d78ad35ea5f11e1A183705681B29C47

..लेकिन स्ट्रिंग्स के रूप में अलग-अलग सॉर्ट ऑर्डर हैं:

> db.uuidsort.find().sort({_id:1})
{ "_id" : "5D78AD35EA5F11E1A183705681B29C47" }
{ "_id" : "5d78ad35ea5f11e1A183705681B29C47" }
{ "_id" : "5d78ad35ea5f11e1a183705681b29c47" }

बीएसओएन आकारों की तुलना करना:

> db.uuidtest.find()
{ "_id" : BinData(3,"XXitNepfEeGhg3BWgbKcRw==") }
{ "_id" : "5d78ad35ea5f11e1a183705681b29c47" }

> Object.bsonsize(db.uuidtest.findOne({_id: BinData(3,"XXitNepfEeGhg3BWgbKcRw==")}))
31

> Object.bsonsize(db.uuidtest.findOne({_id: "5d78ad35ea5f11e1a183705681b29c47"}))
47

यदि आप स्ट्रिंग के रूप में सम्मिलित करना चाहते हैं, तो आप UUID.hex का उपयोग कर सकते हैं। 32-वर्ण स्ट्रिंग समकक्ष प्राप्त करने के लिए:

>>> db.uuidtest.insert({'_id': uuid.hex})
'5d78ad35ea5f11e1a183705681b29c47'

यदि आप पायथन से स्ट्रिंग द्वारा यूयूआईडी खोजना चाहते हैं, तो आप uuid का उपयोग कर सकते हैं। यूयूआईडी तरीके:

>>> db.uuidtest.find_one({'_id':uuid.UUID('5d78ad35ea5f11e1a183705681b29c47')})
{u'_id': UUID('5d78ad35-ea5f-11e1-a183-705681b29c47')}

यदि आप mongo . से स्ट्रिंग द्वारा UUIDs खोजना चाहते हैं खोल, एक UUID() है सहायक:

> db.uuidtest.find({_id:UUID('5d78ad35ea5f11e1a183705681b29c47')})
{ "_id" : BinData(3,"XXitNepfEeGhg3BWgbKcRw==") }

नोट:अन्य ड्राइवर संस्करणों के साथ इंटरऑपरेबिलिटी के लिए कुछ अन्य यूयूआईडी उपप्रकार उपलब्ध हैं, जैसा कि bson.binary के लिए API दस्तावेज़




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो डिमन सेवा से नहीं चलता है mongod start

  2. दस्तावेज़ को ऊपर करें और/या एक उप-दस्तावेज़ जोड़ें

  3. उल्का, मोंगोडब, स्पेसबार, मैं केवल 2 दशमलव स्थानों को कैसे प्रदर्शित करूं

  4. Morphia MongoDB अशक्त और गैर-मौजूदा फ़ील्ड के लिए जाँच करें

  5. मोंगोडीबी $पुश