"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > MGO.Findid () एक हेक्साडेसिमल ऑब्जेक्ट आईडी के साथ दस्तावेजों को पुनः प्राप्त करने में विफल क्यों होता है?

MGO.Findid () एक हेक्साडेसिमल ऑब्जेक्ट आईडी के साथ दस्तावेजों को पुनः प्राप्त करने में विफल क्यों होता है?

2025-03-23 ​​पर पोस्ट किया गया
ब्राउज़ करें:303

] यह समस्या निम्न कोड स्निपेट और उसके आउटपुट से स्पष्ट है:

Why Does mgo.FindId() Fail to Retrieve Documents with a Hexadecimal Object ID?

session.setMode (mgo.monotonic, true) coll: = session.db ("aaaw_web")। c ("cron_emails") var परिणाम परिणाम fmt.printf ("%v", message.id) Err = coll.findid (bson.objectid (message.id))। एक (और परिणाम) fmt.printf ("%v", परिणाम) fmt.println (err) आउटपुट:

{Objectidhex ("") 0 0 0 0 {0 FALSE 0} 0 0 0 0 0 0 0 0} Objectids ठीक 12 बाइट्स लंबा होना चाहिए (GOT 24) नहीं मिला
session.SetMode(mgo.Monotonic, true)
coll := session.DB("aaaw_web").C("cron_emails")
var result Result
fmt.Printf("%v", message.ID)
err = coll.FindId(bson.ObjectId(message.ID)).One(&result)
fmt.Printf("%v", result)
fmt.Println(err)

3 बाइट्स मशीन आइडेंटिफ़ायर

595f2c1a6edcba0619073263
{ObjectIdHex("") 0   0  0    0 {         0    false 0    } 0 0 0  0 0 0 0}
ObjectIDs must be exactly 12 bytes long (got 24)
not found
2 बाइट्स ऑफ प्रोसेस आइडेंटिफ़ायर

Message.id ऑब्जेक्ट आईडी का 24-वर्ण हेक्साडेसिमल स्ट्रिंग प्रतिनिधित्व है। इस स्ट्रिंग को एक MongoDB ऑब्जेक्ट आईडी में बदलने के लिए, आपको bson.objectidhex () फ़ंक्शन:

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3