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

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

MongoDB एग्रीगेशन में सरणी फ़िल्टरिंग: रेंज आधारित

$addFields के साथ $filter का उपयोग करके सरणी को स्थानांतरित रूप से फ़िल्टर करें, केवल उन तत्वों को रखें जो रेंज शर्तें (उदाहरण: $gt और $lt) पूरी करते हैं।

नमूना डेटा

> db.demo351.insertOne({
    _id: "101",
    ProductDetails: [
        {ProductName: "Product-1", ProductPrice: 500},
        {ProductName: "Product-2", ProductPrice: 400}
    ]
});
{ "acknowledged": true, "insertedId": "101" }

> db.demo351.insertOne({
    _id: "102",
    ProductDetails: [
        {ProductName: "Product-3", ProductPrice: 200},
        {ProductName: "Product-4", ProductPrice: 800}
    ]
});
{ "acknowledged": true, "insertedId": "102" }

एग्रीगेशन: _id "102" के लिए Price 600-900 के बीच वाले उत्पाद

> db.demo351.aggregate([
    {$match: {_id: "102"}},
    {$addFields: {
        ProductDetails: {$filter: {
            input: "$ProductDetails",
            cond: {$and: [{$gt: ["$$this.ProductPrice", 600]}, {$lt: ["$$this.ProductPrice", 900]}]}
        }}
    }}
]);

परिणाम

{ "_id": "102", "ProductDetails": [{"ProductName": "Product-4", "ProductPrice": 800}] }

केवल Product-4 (Price 800) रेंज में है। $match पहले दस्तावेज़ फ़िल्टर करता है, फिर $addFields + $filter सरणी को आकार देता है। $$this वर्तमान सरणी तत्व को संदर्भित करता है।

  1. - MongoDB में Same Array Elements वाले Document Find करना

    Same array elements वाले document को find करने के लिए find() में $all का उपयोग करें। $all operator उन documents को select करता है जहां field का value एक array है जिसमें सभी specified elements मौजूद हैं। Collection बनाना > db.demo543.insertOne({id:101, subject:[MySQL, Java ,C,Python]}); { acknowl

  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 में एम्बेडेड डॉक्यूमेंट की सरणी पर फ़िल्टर क्वेरी कैसे करें?

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo736.insertOne( { _id: 101, details1: [ { details2: [ { details3: { Name: John } } ] } ] } ); { acknowledged : true, insertedId : 101 } > db.demo736.insertOne( { _id: 102,