मानगो मेरा संग्रह नहीं पा रहा है


10

मेरे mongodb सर्वर का एक डेटाबेस है, जिसका नाम गाँव कैंटेंट्स है

इसमें टेबलबिजनेस नाम का एक संग्रह है

अगर मैं मानगो चला तो मैंने देखा

MongoDB shell version: 2.0.7
connecting to: test
>

मुझे आश्चर्य है कि "परीक्षण" क्या है। वहाँ परीक्षण नाम का कोई डेटाबेस नहीं है।

मैंने अमल करने की कोशिश की

> villageContents.tablebusiness.ensureIndex({"LatitudeLongitude" : "2d"})
Wed Aug 15 09:28:28 ReferenceError:is not defined (shell):1
>

मैंने अमल करने की कोशिश की

> test.villageContents.tablebusiness.ensureIndex({"LatitudeLongitude" : "2d"})
Wed Aug 15 09:29:13 ReferenceError: test is not defined (shell):1
>

मैंने गलत क्या किया?

फिर मैंने किया

db.villageContents.tablebusiness.ensureIndex({"LatitudeLongitude" : "2d"})

कुछ भी नहीं दिखा। इंडेक्स भी नहीं जोड़े गए हैं।

तो क्या गलत हुआ?

जवाबों:


8

मुझे आश्चर्य है कि "परीक्षण" क्या है। वहाँ परीक्षण नाम का कोई डेटाबेस नहीं है।

यह सिर्फ डिफॉल्ट डेटाबेस है जो कनेक्ट होने पर मोंगो शेल का उपयोग करता है, जब तक कि आप कुछ डालें, यह खाली है। आप वास्तव में किसी भी डेटाबेस के साथ ऐसा कर सकते हैं, परीक्षण केवल डिफ़ॉल्ट है।

पहला कमांड काम नहीं करेगा क्योंकि आपने इसे db के साथ उपसर्ग नहीं किया था, क्योंकि यह "isikota" को एक चर (जावास्क्रिप्ट) के रूप में खोजने का प्रयास करता है और इसे खोजने में विफल रहता है। इसी तरह आपका अगला प्रयास एक गैर-मौजूद "परीक्षण" चर के साथ भी करता है।

अंत में, यह कमांड सही रूप है (db के साथ उपसर्ग):

db.isikota.tablebusiness.ensureIndex({"LatitudeLongitude" : "2d"})

लेकिन, आपने डेटाबेस (साथ use <database name>) या कम से कम आपने कम से कम कोशिश करने का उल्लेख नहीं किया। यह क्या करने जा रहा है परीक्षण डेटाबेस में "isikota.tablebusiness" नामक एक संग्रह पर "अक्षांश देशांतर" फ़ील्ड पर 2d (जियोइंडेक्स) सूचकांक बनाएं (db हमेशा उस डेटाबेस को संदर्भित करता है जिसका आप वर्तमान में उपयोग कर रहे हैं)। यहां तक ​​कि अगर यह संग्रह मौजूद नहीं है, तो सूचकांक बनाया जाएगा (यह सिस्टम में केवल एक प्रविष्टि है। नाम स्थान) और इसलिए कमांड सफल होता है। आप अभी कुछ और नहीं देखेंगे, क्योंकि मेरा मानना ​​है कि आप अभी भी परीक्षण डेटाबेस पर काम कर रहे हैं।

यह मानते हुए कि आपका डेटा वास्तव में "इसकोटा" नामक डेटाबेस में है और "टेबलबिजनेस" आपका संग्रह है, जो आप वास्तव में करना चाहते हैं वह यह है:

use isikota;
db.tablebusiness.ensureIndex({"LatitudeLongitude" : "2d"});

जो कि "टेबलटाविस" नामक एक संग्रह में "लैटिटोलॉन्गिट्यूड" फ़ील्ड पर "आइसोटा" नामक डेटाबेस में सूचकांक का निर्माण करेगा।


और वास्तव में एक डेटाबेस है जिसे परीक्षण कहा जाता है। मैंने इसे नहीं देखा।
user4951
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.