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

MongoDB में $filter का उपयोग करके सबडॉक्यूमेंट को मानदंड के आधार पर ढूंढना और वापस करना

MongoDB एग्रीगेशन में सबडॉक्यूमेंट फ़िल्टरिंग

$filter के साथ $addFields का उपयोग करके सरणी से केवल उन सबडॉक्यूमेंट्स को रखें जो विशिष्ट मानदंड (उदाहरण: isMarried: true) पूरे करते हैं।

नमूना डेटा

> db.demo345.insertOne({
    "UserName": "Robert",
    "UserDetails": [
        {"isMarried": false, "CountryName": "US"},
        {"isMarried": true, "CountryName": "UK"},
        {"isMarried": false, "CountryName": "AUS"}
    ]
});
{ "acknowledged": true, "insertedId": ObjectId("5e5404fdf8647eb59e5620ac") }

एग्रीगेशन: केवल विवाहित (isMarried: true) रखें

> db.demo345.aggregate([
    {$match: {UserName: "Robert"}},
    {$addFields: {
        UserDetails: {$filter: {
            input: "$UserDetails",
            cond: {$eq: ["$$this.isMarried", true]}
        }}
    }}
]);

परिणाम

{ "UserName": "Robert", "UserDetails": [{"isMarried": true, "CountryName": "UK"}] }

सरणी UserDetails अब केवल विवाहित सबडॉक्यूमेंट (UK) रखती है। मूल दस्तावेज़ अपरिवर्तित; एग्रीगेशन आउटपुट आकार बदलता है। $$this प्रत्येक सरणी तत्व को संदर्भित करता है।

  1. - MongoDB में FirstName और LastName के संयोजन पर क्वेरी कैसे करें?

    संयोजन के लिए, $concat का उपयोग करें और $eq का उपयोग करके समानता जांचें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo502.insertOne({FirstName:John,LastName:Smith}); { acknowledged : true, insertedId : ObjectId(5e875534987b6e0e9d18f56d) } > db.demo502.insertOne({FirstName:David,LastName:Mi

  1. - MongoDB Query - Specific FirstName और LastName वाले Documents Find करना

    Specific FirstName और LastName वाले documents find करने के लिए $and के साथ $in का उपयोग करें। MongoDB find() में implement करें। Collection बनाना > db.demo692.insertOne({FirstName:Chris,LastName:Brown}); { acknowledged : true, insertedId : ObjectId(5ea585dca7e81adc6a0b396a) } > db.demo692.ins

  1. - MongoDB में डॉक्यूमेंट और सबडॉक्यूमेंट उदाहरण के साथ अपडेट

    डॉक्यूमेंट और सबडॉक्यूमेंट दिखाने वाला सिंटैक्स: db.yourCollectionName.insertOne( { yourFieldName: yourValue, yourFieldName: [ { yourFieldName1, yourFieldName2, ... N } ] } ); आइए