মঙ্গো আমার সংগ্রহটি খুঁজে পাচ্ছে না


10

আমার মংডোব সার্ভারে ভিলেজ কনটেন্টস নামে একটি ডাটাবেস রয়েছে

এটিতে টেবিল বিজনেস নামে একটি সংগ্রহ রয়েছে

আমি যদি মঙ্গো চালাই তবে দেখলাম

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.tablebusiness.ensureIndex({"LatitudeLongitude" : "2d"})

তবে, আপনি ডাটাবেস (সহ use <database name>) পরিবর্তন করেন নি বা কমপক্ষে চেষ্টা করার কথা উল্লেখ করেননি। এটি যা করতে চলেছে তা হল পরীক্ষামূলক ডাটাবেসে "ইসিকোটা.ট্যাবলবসনেস" নামে একটি সংগ্রহের একটি "অক্ষাংশলৈর্ঘ্য" ফিল্ডে একটি 2 ডি (জিওইন্ডেক্স) সূচক তৈরি করা (ডিবি সর্বদা আপনি বর্তমানে যে ডাটাবেসটি ব্যবহার করছেন তা বোঝায়)। এমনকি যদি এই সংগ্রহটি বিদ্যমান না থাকে তবে সূচকটি তৈরি করা হবে (এটি সিস্টেমের মধ্যে একটি সন্নিবেশ মাত্র name নামসূচক স্থান) এবং সুতরাং কমান্ডটি সফল হয়। আপনি কেবল আর কিছু দেখতে পাবেন না, কারণ আমি বিশ্বাস করি আপনি এখনও পরীক্ষার ডাটাবেসে অপারেট করছেন।

আপনার ডেটা ধরে নেওয়া আসলে "ইসিকোটা" নামক একটি ডাটাবেসে এবং "টেবিলব্যাসনেস" আপনার সংগ্রহ যা আপনি আসলে যা করতে চান তা হ'ল:

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

এটি "ইসিকোটা" নামক একটি ডাটাবেসে "টেবিলব্যসনেস" নামে একটি সংকলনে "অক্ষাংশ দীর্ঘস্থায়" ফিল্ডে সূচক তৈরি করবে।


এবং প্রকৃতপক্ষে একটি ডাটাবেস আছে যা পরীক্ষা বলে। আমি তা দেখিনি।
user4951
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.