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

MongoDB क्वेरी से ऐरे के हर एलिमेंट की फ्रीक्वेंसी गिनें

एग्रीगेशन पाइपलाइन: $unwind, $group, $replaceRoot से फ्रीक्वेंसी गिनें

ऐरे फ़ील्ड में प्रत्येक मान की आवृत्ति (कितनी बार आता है) गिनने के लिए एग्रीगेशन स्टेज्स का संयोजन उपयोग करें।

उदाहरण: संग्रह बनाना

> db.demo184.insertOne({"Names": ["Chris", "David", "Bob"]});
{ "acknowledged": true, "insertedId": ObjectId("5e3999fb9e4f06af55199805") }
> db.demo184.insertOne({"Names": ["Chris", "Mike"]});
{ "acknowledged": true, "insertedId": ObjectId("5e399a0d9e4f06af55199806") }
> db.demo184.insertOne({"Names": ["Chris", "Bob", "Carol"]});
{ "acknowledged": true, "insertedId": ObjectId("5e399a209e4f06af55199807") }

सभी डॉक्यूमेंट्स देखना

> db.demo184.find();
{ "_id": ObjectId("5e3999fb9e4f06af55199805"), "Names": ["Chris", "David", "Bob"] }
{ "_id": ObjectId("5e399a0d9e4f06af55199806"), "Names": ["Chris", "Mike"] }
{ "_id": ObjectId("5e399a209e4f06af55199807"), "Names": ["Chris", "Bob", "Carol"] }

फ्रीक्वेंसी गिनने की एग्रीगेशन क्वेरी

> db.demo184.aggregate([
    { "$unwind": "$Names" },
    { "$group": { "_id": "$Names", "count": { "$sum": 1 } } },
    { "$group": {
        "_id": null,
        "counts": { "$push": { "k": "$_id", "v": "$count" } }
    }},
    { "$replaceRoot": { "newRoot": { "$arrayToObject": "$counts" } } }
])

आउटपुट:

{ "Carol": 1, "David": 1, "Chris": 3, "Bob": 2, "Mike": 1 }

पाइपलाइन:

  1. $unwind: ऐरे को अलग-अलग डॉक्यूमेंट्स में फ़्लैट करता है।
  2. पहला $group: प्रत्येक नाम के लिए गिनती करता है।
  3. दूसरा $group: सभी गिनतियों को की-वैल्यू पेयर्स के ऐरे में संग्रहीत करता है।
  4. $replaceRoot + $arrayToObject: उस ऐरे को ऑब्जेक्ट में बदलता है।

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

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

  1. - MongoDB क्वेरी: ऐरे के केवल एक एलिमेंट को स्लाइस करें

    ऐरे के केवल एक एलिमेंट को स्लाइस करने के लिए, MongoDB में $slice का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo579.insertOne( { _id: 101, details: { FirstName: John }, Marks: [56,78,90,34,45,74] } ); { acknowledged : true, insertedId : 101 }

  1. - MongoDB क्वेरी: एग्रीगेशन में ऐरे एलिमेंट का औसत प्राप्त करें

    ऐरे एलिमेंट्स का औसत प्राप्त करने के लिए, $avg का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo584.insertOne({Marks:[75,50,85,60,80]}); { acknowledged : true, insertedId : ObjectId(5e91d827fd2d90c177b5bcc2) } find() मेथड की मदद से कलेक्शन के सभी दस्तावेज प्रदर्शित करें: >