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

MongoDB में ऐरे के अंदर नेटिव क्वेरी करके काउंट प्राप्त करना

MongoDB में $exists के साथ ऐरे के अंदर क्वेरी करके काउंट प्राप्त करना

ऐरे के अंदर क्वेरी करके अस्तित्व जांचने और काउंट प्राप्त करने के लिए $exists का उपयोग करें।

कलेक्शन बनाना

> db.demo296.insertOne(
    {
        "id": 101,
        "Name": "Chris",
        "details": [
            { "SubjectId": [101,103], "SubjectName": ["MySQL","MongoDB"] },
            { "SubjectId": [102,104], "SubjectName": ["Java","C"] }
        ]
    }
);
{ "acknowledged": true, "insertedId": ObjectId("5e4d51715d93261e4bc9ea3b") }
> db.demo296.insertOne(
    {
        "id": 102,
        "Name": "David",
        "details": [
            { "SubjectId": [110,113] },
            { "SubjectId": [112,114] }
        ]
    }
);
{ "acknowledged": true, "insertedId": ObjectId("5e4d519b5d93261e4bc9ea3c") }
> db.demo296.insertOne(
    {
        "id": 103,
        "Name": "Bob",
        "details": [
            { "SubjectName": ["C++","Python"] },
            { "SubjectName": ["Spring","Hibernate"] }
        ]
    }
);
{ "acknowledged": true, "insertedId": ObjectId("5e4d52315d93261e4bc9ea3d") }

सभी डॉक्यूमेंट्स

> db.demo296.find();

ऐरे के अंदर क्वेरी करके काउंट प्राप्त करना

> db.demo296.count( { 'details.SubjectName': { $exists: true } } );

परिणाम

2

व्याख्या

  • count(): मिलान करने वाले डॉक्यूमेंट्स की संख्या लौटाता है
  • {'details.SubjectName': {$exists: true}}: ऐसे डॉक्यूमेंट्स जहां details ऐरे के कम से कम एक तत्व में SubjectName फील्ड मौजूद है
  • पहला डॉक्यूमेंट: दोनों तत्वों में SubjectName है → मेल खाता है
  • तीसरा डॉक्यूमेंट: दोनों तत्वों में SubjectName है → मेल खाता है
  • दूसरा डॉक्यूमेंट: किसी तत्व में SubjectName नहीं है → बाहर
  • कुल: 2 डॉक्यूमेंट्स

नोट

  • count() डिप्रिकेटेड है; countDocuments() या estimatedDocumentCount() का उपयोग करें
  • $exists: true फील्ड की उपस्थिति जांचता है (मान null होने पर भी true)
  • ऐरे फील्ड पर: ऐरे के किसी भी तत्व में फील्ड मौजूद होने पर true

वैकल्पिक: एग्रीगेशन के साथ

            
  1. - MongoDB में केवल फील्ड नाम क्वेरी करना और केवल _id प्रदर्शित करना

    केवल फील्ड नाम क्वेरी करने के लिए, फील्ड को 0 पर सेट करें यानी छुपाने के लिए फील्ड को 0 करें। नमूना डेटा बनाना db.demo650.insertOne({_id:104,details:{Name:Robert,Age:24}}); सभी दस्तावेज़ देखना db.demo650.find(); { _id : 101, details : { Name : Chris, Age : 21 } } { _id : 102, details : { Name :

  1. - MongoDB में Array Items Group करके Similar Price Products Count करना

    Array items group करने के लिए $group के साथ $sort का उपयोग करें। Collection बनाना > db.demo566.insertOne( ... { ... ProductInformation : [ ... { ProductName : Product-1, ProductPrice :100 }, ... { ProductName : Product-2, ProductPrice :1100 }, ... { ProductName : Product-3, Product

  1. - MongoDB में ऐरे आइटम्स की गिनती करके नए फील्ड में प्रदर्शित करें

    दस्तावेज में ऐरे आइटम्स की संख्या गिनने के लिए, MongoDB में $size का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo703.insertOne({ListOfSubject:[MySQL,MongoDB]}); { acknowledged : true, insertedId : ObjectId(5ea6ebaf551299a9f98c93b4) } > db.demo703.insertOne({ListOfSubject: