Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में इंटीजर ऐरे से डॉक्यूमेंट कैसे खोजें?

MongoDB में ऐरे क्वेरी: $where और डायरेक्ट मैच

इंटीजर ऐरे वाले डॉक्यूमेंट खोजने के लिए $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]
}

केस 1: कम से कम एक एलिमेंट वाले ऐरे खोजें

> 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]
}

केस 2: ऐरे में कॉमन वैल्यू वाले डॉक्यूमेंट खोजें

> db.searchDocumentArrayIntegerDemo.find({StudentScores: 45}, {StudentScores:1});
{
  "_id": ObjectId("5cd2a219345990cee87fd88c"),
  "StudentScores": [45, 78, 89, 90]
}
{
  "_id": ObjectId("5cd2a22a345990cee87fd88d"),
  "StudentScores": [45, 43, 34, 33]
}

बेहतर विकल्प

$where जावास्क्रिप्ट इवैल्यूएशन का उपयोग करता है जो धीमा हो सकता है। बेहतर परफॉरमेंस के लिए:

  • ऐरे लेंथ चेक: { StudentScores: { $exists: true, $ne: [] } }
  • ऐरे में वैल्यू खोजें: { StudentScores: 45 } (MongoDB ऑटोमैटिकली ऐरे में खोजता है)
  1. - MongoDB में ऐरे में एलिमेंट जोड़ने के लिए $push का उपयोग

    MongoDB में $push ऑपरेटर का उपयोग करके ऐरे में दस्तावेज़ जोड़ना MongoDB एग्रीगेशन में $push ऑपरेटर का उपयोग करके ग्रुपिंग के दौरान दस्तावेज़ों को एक ऐरे में संचित किया जा सकता है। यह $group स्टेज के साथ उपयोग होता है। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo399.insertOne({Name:Chris,Age:21});

  1. - MongoDB में ऐरे में कैसे जोड़ें?

    MongoDB में ऐरे में जोड़ने के लिए $concatArrays ऑपरेटर का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo435.insertOne({"FirstName":["Chris"],"LastName":["Brown"]} ); {    "acknowledged" : true,    "inserted

  1. - MongoDB में ऐरे के आधार पर दस्तावेज़ कैसे फ़िल्टर करें?

    ऐरे के आधार पर दस्तावेज़ फ़िल्टर करने के लिए $elemMatch का उपयोग करें। $elemMatch ऑपरेटर उन दस्तावेज़ों से मेल खाता है जिनमें एक ऐरे फ़ील्ड होता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo453.insertOne( ... { _id: 101, details: [ { Name: "David", Marks: 60 }, { Name: "M