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

MongoDB $unwind: गिनती प्राप्त करने के लिए उपयोग करें


MongoDB में $unwind इनपुट दस्तावेज़ों से ऐरे फ़ील्ड को डी-कंस्ट्रक्ट करता है ताकि प्रत्येक एलिमेंट के लिए एक दस्तावेज़ आउटपुट हो। गिनती प्राप्त करने के लिए $unwind के साथ aggregate() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं:

> db.demo478.insertOne( ... { ... ...    "Details" : { ...       _id:1, ...       "Information" : [ ...          { ...             "Name" : "Chris", ...             "Age":21 ...          }, ...          { ...             "Name" : "David", ...             "Age":23 ...          }, ...          { ... ...             "Name" : null, ...             "Age":22 ...          }, ...          { ... ...             "Name" : null, ...             "Age":24 ...          } ...       ] ...    } ... } ... ); {    "acknowledged" : true,    "insertedId" : ObjectId("5e8204acb0f3fa88e2279092") } > > db.demo478.insertOne( ... { ... ...    "Details" : { ...       _id:2, ...       "Information" : [ ...          { ...             "Name" : "Bob", ...             "Age":21 ...          }, ...          { ...             "Name" : null, ...             "Age":20 ...          } ...       ] ...    } ... } ... ); {    "acknowledged" : true,    "insertedId" : ObjectId("5e8204adb0f3fa88e2279093") }

सभी दस्तावेज़ प्रदर्शित करें

> db.demo478.find();

आउटपुट:

{ "_id" : ObjectId("5e8204acb0f3fa88e2279092"), "Details" : { "_id" : 1, "Information" : [ { "Name" : "Chris", "Age" : 21 }, { "Name" : "David", "Age" : 23 }, { "Name" : null, "Age" : 22 }, { "Name" : null, "Age" : 24 } ] } } { "_id" : ObjectId("5e8204adb0f3fa88e2279093"), "Details" : { "_id" : 2, "Information" : [ { "Name" : "Bob", "Age" : 21 }, { "Name" : null, "Age" : 20 } ] } }

$unwind से गिनती प्राप्त करने की क्वेरी

> db.demo478.aggregate([ ...    { "$unwind": "$Details.Information" }, ...    { ...       "$group" : { ...          "_id": "$Details.Information.Age", ...          "count" : { ...             "$sum": { ...                "$cond": [ ...                   { "$gt": [ "$Details.Information.Name", null ] }, ...                   1, 0 ...                ] ...             } ...          } ...       } ...    }, ... { "$sort" : { "count" : -1 } } ... ])

आउटपुट

{ "_id" : 21, "count" : 2 } { "_id" : 23, "count" : 1 } { "_id" : 24, "count" : 0 } { "_id" : 20, "count" : 0 } { "_id" : 22, "count" : 0 }

  1. - MongoDB में किसी विशिष्ट मान की गिनती तेजी से प्राप्त करें

    तेज़ क्वेरी के लिए, इंडेक्स बनाएं। गिनती प्राप्त करने के लिए, count() का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं −> db.demo311.ensureIndex({"Name":1}); {    "createdCollectionAutomatically" : true,    "numIndexesBefore" : 1,  

  1. - MongoDB ग्रुप क्वेरी: दस्तावेज़ों में दोहराए गए अंकों की संख्या कैसे प्राप्त करें?

    ग्रुप क्वेरी के लिए, MongoDB $group का उपयोग करें और $sum के साथ संख्या प्राप्त करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo676.insertOne({Marks:87}); { acknowledged : true, insertedId : ObjectId(5ea41eed04263e90dac943f2) } > db.demo676.insertOne({Marks:75}); { acknowledged : true,

  1. - MongoDB aggregate से डुप्लिकेट नामों के संबंधित फील्ड मानों की गिनती प्राप्त करें

    उदाहरण देखते हैं और डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo558.insertOne( ... { _id : 100, CountryCode:101, details: [ ... { Name:Chris, Subject:MySQL }, ... { Name:Chris, Subject:MongoDB }, ... { Name:Chris, Subject:Java }, ... { Name:Bob, Subject:Python }, ... { Name:Bob, Subject:J