क्षमा करें, मुझे शुरुआत में आपका प्रश्न समझ में नहीं आया और इसलिए गलत उत्तर दिया (धन्यवाद कैबबंगा इसे इंगित करने के लिए)। तो यहाँ एक सही है।
इसलिए आपको यह निर्दिष्ट करने की आवश्यकता है कि आप इसे 64bit पूर्णांक . आप इसे निम्न तरीके से कर सकते हैं:
db.a.insert({
bound:"latest",
id: NumberLong("138548488276343678"), // Note these "". I was not using them and the number was not stored correctly
complete:false
})
इसके बाद आप अपने दस्तावेज़ को पुनः प्राप्त कर सकते हैं db.a.find()
और यह सही होगा। ध्यान दें कि बहुत से ड्राइवरों को समान समस्याएं होती हैं और इसलिए आपको स्पष्ट रूप से बताना होगा कि आप उन्हें 64 बिट पूर्णांक के रूप में सहेजने जा रहे हैं।
यदि आप _id
निर्दिष्ट नहीं कर रहे हैं आपके द्वारा बनाए जा रहे दस्तावेज़ के लिए, mongodb _id
बनाता है अपने आप में क्षेत्र। आप _id
. के बारे में कुछ और पढ़ सकते हैं यहां
और आधिकारिक दस्तावेज
में ।
यदि आपके पास अपना क्षेत्र है, जिसे आप _id
. के रूप में उपयोग करना चाहते हैं , लिखने के बजाय id:138548488276343678
आपको _id : 138548488276343678
write लिखना चाहिए .
पी.एस. यह भी क्योंकि मैं देख रहा हूं कि आप काफी बड़ी संख्या का उपयोग कर रहे हैं, ध्यान रखें कि मोंगोडब में पूर्णांकों को 64-बिट पूर्णांक (जिसका अर्थ है कि यह -2^63 से 2^63 - 1 के बीच है)