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. मोंगोडीबी $पुश