MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

प्रत्येक नोड के लिए सभी चाइल्ड नोड्स में सबनोड्स की गणना करने के लिए मोंगो एग्रीगेट लुकअप पर मार्गदर्शन की आवश्यकता है

परीक्षण डेटा इस से प्राप्त करें मोंगोप्लेग्राउड लिंक।

नोट :आप सभी $sort . को छोड़ सकते हैं प्रदर्शन के लिए उपरोक्त लिंक में चरण।

पत्तियों की गिनती प्राप्त करने के लिए प्रश्न:

db.Forests.aggregate([
    { $unwind: "$trees" },
    { $unwind: "$trees.branches" },
    {
        $lookup: {
            from: "Leaves",
            localField: "trees.branches.branch_id",
            foreignField: "branch_id",
            as: "trees.branches.leaves"
        }
    },
    {
        $addFields: {
            "trees.branches.leaf_count": { $size: "$trees.branches.leaves" }
        }
    },
    {
        $project: { "trees.branches.leaves": 0 }
    },
    {
        $group: {
            _id: {
                forest_id: "$forest_id",
                tree_id: "$trees.tree_id"
            },
            leaf_count: { $sum: "$trees.branches.leaf_count" },
            branches: { $push: "$trees.branches" }
        }
    },
    {
        $group: {
            _id: "$_id.forest_id",
            leaf_count: { $sum: "$leaf_count" },
            trees: {
                $push: {
                    leaf_count: { $sum: "$leaf_count" },
                    tree_id: "$_id.tree_id",
                    branches: "$branches"
                }
            }
        }
    },
    {
        $group: {
            _id: null,
            leaf_count: { $sum: "$leaf_count" },
            forests: {
                $push: {
                    leaf_count: { $sum: "$leaf_count" },
                    forest_id: "$_id",
                    trees: "$trees"
                }
            }
        }
    },
    {
        $project: { _id: 0 }
    }
])

आउटपुट:

{
    "leaf_count" : 4,
    "forests" : [
        {
            "leaf_count" : 3,
            "forest_id" : "forestA",
            "trees" : [
                {
                    "leaf_count" : 2,
                    "tree_id" : "treeA",
                    "branches" : [
                        {
                            "branch_id" : "branchA",
                            "leaf_count" : 1
                        },
                        {
                            "branch_id" : "branchA1",
                            "leaf_count" : 1
                        },
                        {
                            "branch_id" : "branchA2",
                            "leaf_count" : 0
                        }
                    ]
                },
                {
                    "leaf_count" : 1,
                    "tree_id" : "treeB",
                    "branches" : [
                        {
                            "branch_id" : "branchB",
                            "leaf_count" : 1
                        }
                    ]
                }
            ]
        },
        {
            "leaf_count" : 1,
            "forest_id" : "forestB",
            "trees" : [
                {
                    "leaf_count" : 1,
                    "tree_id" : "treeC",
                    "branches" : [
                        {
                            "branch_id" : "branchC",
                            "leaf_count" : 1
                        }
                    ]
                },
                {
                    "leaf_count" : 0,
                    "tree_id" : "treeD",
                    "branches" : [
                        {
                            "branch_id" : "branchD",
                            "leaf_count" : 0
                        }
                    ]
                }
            ]
        },
        {
            "leaf_count" : 0,
            "forest_id" : "forestC",
            "trees" : [
                {
                    "leaf_count" : 0,
                    "tree_id" : "treeE",
                    "branches" : [
                        {
                            "branch_id" : "branchE",
                            "leaf_count" : 0
                        }
                    ]
                }
            ]
        }
    ]
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. जावास्क्रिप्ट - 24 अंकों की हेक्साडेसिमल संख्या को दशमलव में बदलें, 1 जोड़ें और फिर वापस कनवर्ट करें?

  2. MongoDB 2.1 एक नाम से मेल खाने वाले ऐरे तत्वों का समग्र फ्रेमवर्क योग

  3. स्प्रिंग डेटा के आधार पर बहु-किरायेदार मोंगोडब डेटाबेस

  4. अजगर का उपयोग करके केवल मिलान किए गए मोंगोडब के उप-दस्तावेज़ का चयन कैसे करें?

  5. आईडी सहित मोंगोडब संग्रह में सभी ऑब्जेक्ट्स को कैसे पुनर्प्राप्त करें?