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

MongoDB एग्रीगेशन में $project और $filter का उपयोग करके सरणी फ़ील्ड के विशिष्ट तत्व प्रोजेक्ट करना

MongoDB में $project + $filter: सरणी से शर्त-आधारित प्रोजेक्शन

$project स्टेज के भीतर $filter का उपयोग करके सरणी फ़ील्ड को नई सरणी से बदलें जिसमें केवल शर्त पूरी करने वाले तत्व हों। यह दस्तावेज़ संरचना को आकार देने का शक्तिशाली तरीका है।

नमूना डेटा

> db.demo355.insertOne({id: 101, details: [{"Name": "Chris", isMarried: 1}, {"Name": "David", isMarried: 0}, {"Name": "Mike", isMarried: 1}]});
{ "acknowledged": true, "insertedId": ObjectId("5e568928f8647eb59e5620c5") }

एग्रीगेशन: केवल isMarried=1 वाले तत्व रखें

> db.demo355.aggregate([
    {$project: {
        details: {$filter: {
            input: "$details",
            as: "out",
            cond: {$eq: ["$$out.isMarried", 1]}
        }}
    }}
]);

परिणाम

{ "details": [{"Name": "Chris", "isMarried": 1}, {"Name": "Mike", "isMarried": 1}] }

केवल Chris और Mike (isMarried: 1) रखे गए; David (0) फ़िल्टर हो गया। as: "out" प्रत्येक तत्व के लिए चर नाम परिभाषित करता है, फिर $$out द्वारा संदर्भित किया जाता है। मूल दस्तावेज़ अपरिवर्तित रहता है।

  1. - MongoDB में ऐरे टाइप फ़ील्ड मान को कैसे बाहर करें?

    ऐरे टाइप फ़ील्ड मान को बाहर करने के लिए MongoDB में delete() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo464.insertOne( ... { ... ...    "id" : "101", ...    "details": [ ...       { ...       &nb

  1. - MongoDB में Array Elements के साथ Specific Document Fetch करना

    MongoDB में किसी specific document को fetch करने के लिए find() मेथड में dot notation का उपयोग करें। आइए documents के साथ एक collection बनाते हैं: > db.demo672.insertOne({Brand:[{CategoryName:Mobile,Name:Oppo}]}); { acknowledged : true, insertedId : ObjectId(5ea3ea9b04263e90dac943e5) } > db.dem

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

    किसी फ़ील्ड में ऐरे एलिमेंट्स की संख्या गिनने के लिए $size ऑपरेटर का उपयोग करें। डेमो डेटा > db.demo723.insertOne({Subject:[MySQL,MongoDB]}); > db.demo723.insertOne({Subject:[C]}); > db.demo723.insertOne({Subject:[C++,Java,Python]}); क्वेरी db.demo723.aggregate([ { $project: { count: