কম্পিউটার টিউটোরিয়াল

MongoDB-এ ইন্টিজার অ্যারে দিয়ে ডকুমেন্ট সার্চ করা

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 জাভাস্ক্রিপ্ট এক্সিকিউট করে, তাই বড় ডেটাসেটে ধীর হতে পারে। সরাসরি মэтচিং ফাস্ট।

  1. MongoDB অগ্রেশন মেথডে ইন্টিজার অ্যারে কনক্যাটেনেট করা

  2. MongoDB-তে অ্যারে পুশ করার পদ্ধতি

  3. MongoDB-এ অ্যারেতে এলিমেন্ট যুক্ত করার পদ্ধতি

  4. MongoDB-এ অ্যারে অনুযায়ী ডকুমেন্ট ফিল্টার করা