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

MongoDB एग्रीगेशन में $addFields और $filter का उपयोग करके मिलान वाले सरणी तत्वों को रखना

MongoDB में $addFields + $filter: सरणी को फ़िल्टर करके आकार देना

$addFields स्टेज नए फ़ील्ड्स जोड़ता है या मौजूदा फ़ील्ड्स को ओवरराइट करता है। इसके साथ $filter का उपयोग करके सरणी से केवल शर्त पूरी करने वाले तत्वों को रखें।

नमूना डेटा

> db.demo334.insertOne({
    "Name": "Chris", "Age": 21,
    "details": [{"Subject": "MySQL", "Score": 78}, {"Subject": "MongoDB", "Score": 45}]
});
{ "acknowledged": true, "insertedId": ObjectId("5e52241bf8647eb59e562090") }

एग्रीगेशन: Score >= 70 वाले तत्व रखें

> db.demo334.aggregate([
    {$addFields: {
        details: {$filter: {
            input: "$details",
            as: "out",
            cond: {$gte: ["$$out.Score", 70]}
        }}
    }}
]);

परिणाम

{ "Name": "Chris", "Age": 21, "details": [{"Subject": "MySQL", "Score": 78}] }

केवल MySQL (Score 78) रखा गया; MongoDB (Score 45) फ़िल्टर हो गया। $$out प्रत्येक सरणी तत्व को संदर्भित करता है। मूल दस्तावेज़ अपरिवर्तित रहता है; एग्रीगेशन केवल आउटपुट आकार बदलता है।

  1. - MongoDB में लिस्ट में मान (ऑब्जेक्ट नहीं) के लिए क्वेरी कैसे करें?

    लिस्ट में मानों के लिए क्वेरी करने के लिए MongoDB में पोजिशनल ऑपरेटर $ का उपयोग करें। नमूना डेटा बनाना db.demo628.insertOne({id:2,Name:[Mike,Sam,John]}); सभी दस्तावेज़ देखना db.demo628.find(); { id : 1, Name : [ Chris, David, John ] } { id : 1, Name : [ Carol, Sam ] } { id : 2, Name : [ Mike, Sa

  1. - MongoDB क्वेरी: दस्तावेज़ों में विशिष्ट फ़ील्ड के मान जोड़ें

    आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo677.insertOne({Value:10}); { acknowledged : true, insertedId : ObjectId(5ea421f404263e90dac943f8) } > db.demo677.insertOne({Value:50}); { acknowledged : true, insertedId : ObjectId(5ea421f704263e90dac943f9) } > db.demo677.insertOne({Value:20}

  1. - MongoDB में लिस्ट को ऑर्डर करें और आइटम्स में पोजिशन जोड़ें

    लिस्ट को ऑर्डर करने के लिए sort() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo581.insertOne({Name:Chris,Score:56}); { acknowledged : true, insertedId : ObjectId(5e91cbbbfd2d90c177b5bcb6) } > db.demo581.insertOne({Name:Bob,Score:240}); { acknowledged : true, insertedId