मैं सी # 10Gen द्वारा आपूर्ति की चालक की MongoDB के संस्करण 2.06 और संस्करण (1.5) चल रहा हूँ।MongoDB और दस्तावेजों की पहचान क्या आसानी से वास्तविक Guid पुनः प्राप्त करने के GUIDs स्टोर करने के लिए कारगर तरीका है के लिए guids साथ?
मेरी संस्थाओं केप्रत्येक तरह के रूप में एक आईडी संपत्ति सेटअप है ...
[BsonId(IdGenerator = typeof(GuidGenerator))]
public Guid Id { get; set; }
ईद क्षेत्र द्विआधारी के रूप में संग्रहीत किया जाता है - 3: UuidLegacy। यह कैसे संग्रहीत किया जाता है जब मैं एक इकाई यह ईद के लिए निम्नलिखित जावास्क्रिप्ट ऑब्जेक्ट पर ToJson() फोन की वजह से।
_id : Object
$binary: "some values here"
$type: "03"
यह स्पष्ट रूप से है क्योंकि डेटा को बाइनरी = 3: यूयूड लीगेसी के रूप में संग्रहीत किया जा रहा है। यह समझ में आता है।
मैं अपने जावास्क्रिप्ट कोड में वास्तविक Guid उपयोग करना चाहते हैं। MongoDB के लिए यह कितना कुशल होगा यदि मैंने अपना आईडी गुण निम्न जैसा दिखता है?
[BsonId(IdGenerator = typeof(GuidGenerator)),MongoDB.Bson.Serialization.Attributes.BsonRepresentation(BsonType.String)]
public Guid Id { get; set; }
यह मैंगोडब को मेरे आईडी को एक स्ट्रिंग के रूप में स्टोर करता है। लेकिन यह वास्तव में कितना कुशल है? मैं अपने आईडी के लिए बाइनरी प्रारूप का अनुमान लगा रहा हूं, लेकिन मुझे वास्तव में गइड की आवश्यकता है। Guid मैं अपने json में जरूरत के लिए uuidLegacy: 3 -
मैं कैसे द्विआधारी से जा सकते हैं?
मुझे लगता है कि एक और विचार होगा कि मैं सिर्फ $ द्विआधारी मूल्य का उपयोग कर सकता हूं जो मुझे भेजा गया है? मैं लुकअप करने के लिए आईडी का उपयोग करता हूं और जैसे कि मेरे क्वेरी स्ट्रिंग्स का हिस्सा।
धन्यवाद,
हैलो रॉबर्ट! आपकी प्रतिक्रिया के लिए धन्यवाद, बहुत सराहना की। अंतरिक्ष आवश्यकताओं की दोगुना मेरे लिए चिंता का विषय है। – RDotLee
स्ट्रिंग के रूप में GUID को संग्रहीत करने के साथ मैंने एक और नुकसान यह सुना है कि आप mongodb एग्रीगेशन फ्रेमवर्क का उपयोग नहीं कर सकते हैं। –
"डबलिंग" एक डरावना शब्द है, लेकिन यह केवल GUID फ़ील्ड पर लागू होता है, जो बीएसओएन में केवल 17 (?) बाइट है। स्ट्रिंग में 36 बाइट्स लगेगा, जो * लगभग * दोगुना है, लेकिन फिर भी प्रति GUID केवल अतिरिक्त 1 9 बाइट्स है। यदि प्रति GUID 19 अतिरिक्त बाइट आपके लिए एक समस्या है, तो बीएसओएन शायद आपके लिए प्रारूप नहीं है। – meustrus