এসকিউএলের মতো সংগ্রহের নথিগুলি নির্বাচন করতে মঙ্গো ডিবিতে সম্ভব:
SELECT * FROM collection WHERE _id IN (1,2,3,4);
বা আমার যদি একটি থাকে তবে _id arrayআমি অবশ্যই একে একে বেছে নেব এবং তারপরে array/objectফলাফলগুলি পুনরায় সংশোধন করব?
উত্তর:
সহজ :)
db.collection.find( { _id : { $in : [1,2,3,4] } } );
থেকে নেওয়া: http://www.mongodb.org/display/DOCS/Advanced++ Query#AdvancedQueries-%24in
O(log(n) * m)যেখানে nসংগ্রহে আকার এবং mআইডি সংখ্যা প্রেরণ করা হয়?
কারণ মোংডব ব্যবহার করে bsonএবং বিসনের জন্য গুরুত্বপূর্ণ বৈশিষ্ট্য প্রকার। এবং কারণ _idহল ObjectIdআপনি ভালো ব্যবহার করা আবশ্যক:
db.collection.find( { _id : { $in : [ObjectId('1'),ObjectId('2')] } } );
এবং এর mongodb compassমতো ব্যবহারে:
{ "_id" : { $in : [ObjectId('1'),ObjectId('2')] } }
দ্রষ্টব্য: স্ট্রিং ইন অবজেক্টআইডি এর 24দৈর্ঘ্য রয়েছে।
আপনি যদি শর্তাধীন যেমন ব্যবহারকারীর দ্বারা এবং অন্য কোনও ক্ষেত্রের সন্ধান করতে চান তবে আপনি সহজেই স্প্রেড এবং টেরিনারি অপারেটর ব্যবহার করে নীচের মতো এটি ব্যবহার করতে পারেন aggregateএবংmatch
const p_id = patient_id;
let fetchingReports = await Reports.aggregate([
...(p_id
? [
{
$match: {
createdBy: mongoose.Types.ObjectId(id),
patient_id: p_id,
},
},
]
: [
{
$match: {
createdBy: mongoose.Types.ObjectId(id),
},
},
এটি মঙ্গো ক্যোয়ারির সাথে সম্পর্কিত নয়। আমি এসকিউএল এর সাথে পরিচিত ছিলাম এবং এসকিউএল ব্যবহার করে একটি মঙ্গো ডাটাবেস জিজ্ঞাসা করতে স্টুডিও 3 টি আইডিই ব্যবহার করি। আপনি যদি আমার মতো একজন হন তবে আমি এটি উল্লেখ করতে চাই যে আইডি মানটি টাইপকাস্ট করা দরকার। সুতরাং ক্যোয়ারীটি এমন দেখাচ্ছে:
SELECT _id from <collectionName>
WHERE _id = ObjectId("5883d387971bb840b7399130");