MongoDB-এ অ্যারে ফিল্ডের ভিতরে মান খোঁজার জন্য $where অপারেটর বা সরাসরি মান মিলিয়ে কোয়েরি করা যায়। নিচে দুটি কেস দেখানো হয়েছে।
নমুনা ডেটা তৈরি
> db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"John","StudentScores":[45,78,89,90]});
{ "acknowledged": true, "insertedId": ObjectId("5cd2a219345990cee87fd88c") }
> db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"Larry","StudentScores":[45,43,34,33]});
{ "acknowledged": true, "insertedId": ObjectId("5cd2a22a345990cee87fd88d") }
> db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"Chris","StudentScores":[]});
{ "acknowledged": true, "insertedId": ObjectId("5cd2a23c345990cee87fd88e") }
> db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"David","StudentScores":[99]});
{ "acknowledged": true, "insertedId": ObjectId("5cd2a24d345990cee87fd88f") }
সব ডকুমেন্ট দেখুন
> db.searchDocumentArrayIntegerDemo.find().pretty();আউটপুট:
{
"_id": ObjectId("5cd2a219345990cee87fd88c"),
"StudentFirstName": "John",
"StudentScores": [45, 78, 89, 90]
}
{
"_id": ObjectId("5cd2a22a345990cee87fd88d"),
"StudentFirstName": "Larry",
"StudentScores": [45, 43, 34, 33]
}
{
"_id": ObjectId("5cd2a23c345990cee87fd88e"),
"StudentFirstName": "Chris",
"StudentScores": []
}
{
"_id": ObjectId("5cd2a24d345990cee87fd88f"),
"StudentFirstName": "David",
"StudentScores": [99]
}
কেস ১: অন্তত একটি মান থাকা ডকুমেন্ট খোঁজা
$where এবং length ব্যবহার করে:
> db.searchDocumentArrayIntegerDemo.find({ $where: "this.StudentScores.length >= 1" } );
আউটপুট (খালি অ্যারে বাদ পড়েছে):
{
"_id": ObjectId("5cd2a219345990cee87fd88c"),
"StudentFirstName": "John",
"StudentScores": [45, 78, 89, 90]
}
{
"_id": ObjectId("5cd2a22a345990cee87fd88d"),
"StudentFirstName": "Larry",
"StudentScores": [45, 43, 34, 33]
}
{
"_id": ObjectId("5cd2a24d345990cee87fd88f"),
"StudentFirstName": "David",
"StudentScores": [99]
}
কেস ২: নির্দিষ্ট মান (৪৫) থাকা ডকুমেন্ট খোঁজা
সরাসরি মান দিয়ে কোয়েরি (প্রজেকশন দিয়ে শুধু StudentScores দেখানো):
> db.searchDocumentArrayIntegerDemo.find({StudentScores: 45}, {StudentScores:1});
আউটপুট:
{
"_id": ObjectId("5cd2a219345990cee87fd88c"),
"StudentScores": [45, 78, 89, 90]
}
{
"_id": ObjectId("5cd2a22a345990cee87fd88d"),
"StudentScores": [45, 43, 34, 33]
}
নোট: $where জাভাস্ক্রিপ্ট এক্সিকিউট করে, তাই বড় ডেটাসেটে ধীর হতে পারে। সরাসরি মэтচিং ফাস্ট।