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

MongoDB में सरणी में विशिष्ट मानों की लंबाई कैसे प्राप्त करें?

MongoDB में किसी फील्ड में सरणी के सभी दस्तावेज़ों में विशिष्ट (distinct) मानों की संख्या प्राप्त करने के लिए, distinct() कमांड के बाद .length का उपयोग करें (मोंगो शेल में)।

उदाहरण: नामों की सरणी वाले दस्तावेज़

> db.demo36.insertOne({"Names":["Chris","Bob"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e17643bcfb11e5c34d898d4") }
> db.demo36.insertOne({"Names":["Mike","Sam","Carol"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e176449cfb11e5c34d898d5") }
> db.demo36.insertOne({"Names":["Chris","Bob","David"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e17645bcfb11e5c34d898d6") }

दस्तावेज़ देखना

> db.demo36.find();

आउटपुट: तीन दस्तावेज़ जिनमें ओवरलैपिंग नाम सरणी हैं।

विशिष्ट मानों की गणना

> db.demo36.distinct('Names').length;

आउटपुट: 6

व्याख्या

  • distinct('Names') संग्रह के सभी दस्तावेज़ों में Names सरणी में मौजूद सभी अद्वितीय मान लौटाता है: ["Chris", "Bob", "Mike", "Sam", "Carol", "David"]।
  • .length जावास्क्रिप्ट सरणी प्रॉपर्टी है जो गणना देती है (6)।

नोट: सर्वर-साइड गणना के लिए एग्रीगेशन

शेल-ओनली .length के बजाय सर्वर-साइड गणना के लिए, एग्रीगेशन का उपयोग करें:

> db.demo36.aggregate([
    { $unwind: "$Names" },
    { $group: { _id: null, uniqueNames: { $addToSet: "$Names" } } },
    { $project: { count: { $size: "$uniqueNames" }, _id: 0 } }
])

यह { "count" : 6 } लौटाता है और एप्लिकेशन कोड में काम करता है।

चेतावनी

distinct कमांड की 16MB परिणाम लिमिट होती है। बहुत बड़ी विशिष्ट सेट के लिए, एग्रीगेशन पसंद करें।

  1. - MongoDB में ऑब्जेक्ट ऐरे से विशिष्ट मान कैसे प्राप्त करें?

    MongoDB में ऑब्जेक्ट ऐरे से विशिष्ट मान प्राप्त करने के लिए distinct() मेथड का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo442.insertOne( ...    { ... ...       "Information" : [ ...          { ...      

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