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

MongoDB में $reduce और $concatArrays के साथ बहु-आयामी सरणी को समतल करना

MongoDB में $reduce + $concatArrays: सरणी की सरणी को समतल करना

जब आपके पास सरणियों की सरणी (बहु-आयामी सरणी) हो और आप उसे एकल समतल सरणी में बदलना चाहें, तो $reduce के साथ $concatArrays का उपयोग करें।

नमूना डेटा

> db.demo338.insertOne({"Name": "Chris", "Marks1": [[56, 67, 45], [67, 89, 90, 91]]});
{ "acknowledged": true, "insertedId": ObjectId("5e5299baf8647eb59e56209f") }

एग्रीगेशन: समतल करना

> db.demo338.aggregate([
    {
        $project: {
            Marks: {
                $reduce: {
                    input: "$Marks1",
                    initialValue: [],
                    in: {$concatArrays: ["$$this", "$$value"]}
                }
            }
        }
    }
]);

परिणाम

{ "Marks": [67, 89, 90, 91, 56, 67, 45] }

$reduce सरणी के प्रत्येक उप-सरणी ($$this) पर पुनरावृत्त करता है और इसे संचयकर्ता ($$value) के साथ जोड़ता है। initialValue: [] खाली सरणी से शुरू करता है। क्रम: दूसरी उप-सरणी पहले आती है क्योंकि $$this पहले तर्क के रूप में पास किया जाता है। क्रम बदलने के लिए [$$value, $$this] का उपयोग करें।

  1. - MongoDB में _id फील्ड छिपाएं

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo575.insertOne({id:101,Information:{Name:Chris,Age:21}}); { acknowledged : true, insertedId : ObjectId(5e916a55581e9acd78b427f7) } > db.demo575.insertOne({id:102,Information:{Name:David,Age:20}}); { acknowledged : true, insertedId : ObjectId

  1. - MongoDB में एग्रीगेशन का उपयोग करके सभी मानों को मैच करें

    MongoDB में सभी मानों को मैच करने के लिए, एग्रीगेशन में $match के साथ $and का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo574.insertOne({ details1: { details2: { dueDate: new ISODate(2020-01-10), Name: Chris, UserInformation: {

  1. - मौजूदा MongoDB डॉक्यूमेंट में विशिष्ट डेटाटाइप (सूची, ऑब्जेक्ट) के साथ फील्ड कैसे जोड़ें?

    आप $set का उपयोग कर सकते हैं। आइए एक कलेक्शन बनाते हैं: > db.demo732.insertOne({_id:1,Language:English}); { acknowledged : true, insertedId : 1 } > db.demo732.insertOne({_id:2,Language:Hindi}); { acknowledged : true, insertedId : 2 } find() से सभी डॉक्यूमेंट्स देखें: > db.demo732.find(); आ