mongodb - কিভাবে নেস্টেড বস্তু জিজ্ঞাসা?




syntax nested (2)

বিভাগের সাবডকুমেন্টগুলির দস্তাবেজে প্রস্তাবিত দুটি ক্যোয়ারী পদ্ধতি বিভিন্ন উপায়ে কাজ করে:

যখন ক্ষেত্রটি একটি এম্বেডেড দস্তাবেজ (অর্থাত্, উপডকুমেন্ট ) ধারণ করে, আপনি উপাদানে পৃথক ক্ষেত্রের জন্য মান উল্লেখ করতে, ক্ষেত্রের মান হিসাবে সমগ্র উপডকুমেন্টটি নির্দিষ্ট করতে পারেন, অথবা বিন্দু নোটেশন ব্যবহার করে সাবডকুমেন্টে প্রবেশ করতে পারেন।

সাবডকুমেন্টের মধ্যে সমতা ম্যাচের ক্ষেত্রগুলি সহ সাবডকুমেন্ট ঠিক নির্দিষ্ট উপডকুমেন্টের সাথে মিলে গেলে ডকুমেন্ট নির্বাচন করুন।

নিচের উদাহরণে, ক্যোয়ারী সমস্ত নথির সাথে মেলে যেখানে ক্ষেত্র 'ABC123' মান একটি 'ABC123' রয়েছে যা শুধুমাত্র 'ABC123' মানের ক্ষেত্র ক্ষেত্র এবং '123 Street' মানের সাথে ক্ষেত্রের address সঠিক ক্রমে রয়েছে।

db.inventory.find( {
    producer: {
        company: 'ABC123',
        address: '123 Street'
    }
});

নেস্টেড বস্তুর নোটেশন সহ mongoDB কে জিজ্ঞাসা করার সময় আমার একটি সমস্যা আছে:

db.messages.find( { headers : { From: "[email protected]" } } ).count()
0
db.messages.find( { 'headers.From': "[email protected]" }  ).count()
5

আমি ভুল করছি কি দেখতে পাচ্ছি না। আমি নেটেটেড অবজেক্ট নোটেশনটি ডট নোটেশন ক্যোয়ারী হিসাবে একই ফলাফলটি প্রত্যাশিত করার প্রত্যাশা করছি। কোথায় আমি ভুল?


db.messages.find( { headers : { From: "[email protected]" } } )

দস্তাবেজের জন্য এই প্রশ্নগুলি যেখানে headers সমান { From: ... } , অর্থাৎ কোনও ক্ষেত্র নেই।

db.messages.find( { 'headers.From': "[email protected]" } )

এটি কেবল headers.From দেখায়। ক্ষেত্র থেকে, headers থাকা অন্যান্য ক্ষেত্রের দ্বারা প্রভাবিত নয়, বা এর থেকে অনুপস্থিত নয়।

ডট-নোটেশন ডক্স





bson