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

MongoDB में रिटर्न फॉर्मेट निर्दिष्ट करके मानों को सरणी के रूप में कैसे प्राप्त करें?

MongoDB में कई दस्तावेज़ों के फील्ड मानों को एकल सरणी में संग्रहीत करने के लिए एग्रीगेशन पाइपलाइन में $group और $addToSet (या $push) ऑपरेटर का उपयोग करें।

उदाहरण

विषय वाले दस्तावेज़ बनाएं:

> db.specifyReturnFormatDemo.insertOne({"Subject":"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefd364ef71edecf6a1f6c0") }
> db.specifyReturnFormatDemo.insertOne({"Subject":"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefd369ef71edecf6a1f6c1") }
> db.specifyReturnFormatDemo.insertOne({"Subject":"SQL Server"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefd36fef71edecf6a1f6c2") }

दस्तावेज़ देखें:

> db.specifyReturnFormatDemo.find();
{ "_id" : ObjectId("5cefd364ef71edecf6a1f6c0"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5cefd369ef71edecf6a1f6c1"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5cefd36fef71edecf6a1f6c2"), "Subject" : "SQL Server" }

सभी Subject मानों को एक सरणी में संग्रहीत करें

> db.specifyReturnFormatDemo.aggregate([
  {
    "$group": {
      "_id": 0,
      "Subject": { "$addToSet": "$Subject" }
    }
  },
  {
    "$project": { "_id": 0, "Subject": 1 }
  }
]);

आउटपुट:

{ "Subject" : [ "SQL Server", "MySQL", "MongoDB" ] }

व्याख्या:

  • $group में _id: 0 - सभी दस्तावेज़ों को एक समूह में रखता है
  • $addToSet - अद्वितीय मान जोड़ता है (डुप्लिकेट हटाता है)
  • $push - सभी मान जोड़ता है (डुप्लिकेट रखता है)
  • $project - आउटपुट फॉर्मेट तय करता है (_id छुपाएं, Subject दिखाएं)

$addToSet vs $push

ऑपरेटरव्यवहार
$addToSetकेवल अद्वितीय मान, क्रम गारंटी नहीं
$pushसभी मान (डुप्लिकेट सहित), क्रम बनाए रखता है

उपयोग: ड्रॉपडाउन विकल्प, विशिष्ट मान सूची, रिपोर्टिंग के लिए सरणी बनाने के लिए उपयोगी।

  1. - MongoDB क्वेरी केवल विशिष्ट फ़ील्ड्स (फोन नंबर) को ऐरे के रूप में लौटाएं?

    आइए दस्तावेजों के साथ एक संग्रह बनाएं −> db.demo166.insertOne({"details" : { "UserName" : "Chris", "UserAge":29, "PhoneDetails" : { "PhoneNumber" : "98646463533" } } }); {    "acknowledged" : true, &nb

  1. - MongoDB में सरणी मान कैसे संग्रहीत करें?

    MongoDB में सरणी डेटा संग्रहीत करना MongoDB दस्तावेज़ों में सीधे सरणियों को संग्रहीत करने का समर्थन करता है। एक सरणी में एक ही प्रकार के या मिश्रित प्रकार के मान हो सकते हैं, जिसमें एम्बेडेड दस्तावेज़ (ऑब्जेक्ट्स) भी शामिल हैं। यह संबंधपरक डेटाबेस की तुलना में एक प्रमुख लाभ है। उदाहरण: ऑब्जेक्ट्स क

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

    MongoDB में किसी फील्ड में सरणी के सभी दस्तावेज़ों में विशिष्ट (distinct) मानों की संख्या प्राप्त करने के लिए, distinct() कमांड के बाद .length का उपयोग करें (मोंगो शेल में)। उदाहरण: नामों की सरणी वाले दस्तावेज़ > db.demo36.insertOne({Names:[Chris,Bob]}); { acknowledged : true, insertedId : Objec