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

MongoDB चर मान के साथ नामित नए फ़ील्ड जोड़ें

तो विचार है:

  1. दस्तावेज़ों को deliveryDay के अनुसार समूहित करें और plate.name plate.quantity . का योग प्राप्त करने के लिए ।
  2. उपरोक्त परिणाम को name द्वारा फिर से समूहित करें [{ k: "", v: "" }] . की एक सरणी उत्पन्न करने के लिए प्रारूप।
  3. संयोजन { k: "plate", v: { name: "$_id" } } उपरोक्त सरणी में।
  4. अब array को कन्वर्ट करें $arrayToObject का उपयोग करके ऑब्जेक्ट में ।

मोंगो खेल के मैदान में समाधान . इसे आजमाएं:

db.testCollection.aggregate([
    {
        $group: {
            _id: {
                dDate: "$deliveryDay",
                name: "$plate.name"
            },
            sumOfQty: { $sum: "$plate.quantity" }
        }
    },
    {
        $group: {
            _id: "$_id.name",
            array: {
                $push: {
                    k: "$_id.dDate",
                    v: "$sumOfQty"
                }
            }
        }
    },
    {
        $addFields: {
            array: {
                $concatArrays: ["$array", [{ k: "plate", v: { name: "$_id" } }]]
            }
        }
    },
    {
        $replaceRoot: {
            newRoot: { $arrayToObject: "$array" }
        }
    }
]);

आउटपुट

/* 1 */
{
    "2021-01-16" : 2,
    "plate" : {
        "name" : "pizza"
    }
},

/* 2 */
{
    "2021-01-14" : 1,
    "2021-01-16" : 3,
    "plate" : {
        "name" : "pasta"
    }
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक साधारण मूल्य या सूची के लिए मोंगो में गतिशील चिपचिपा छँटाई

  2. नेवला नेस्टेड वस्तु को नहीं सहेज रहा है

  3. Mongorestore का उपयोग करके MongoDB डेटाबेस को पुनर्स्थापित करें

  4. iptables स्थानीय कनेक्शन को मोंगोडब से अवरुद्ध करता है

  5. EPEL MongoDB EC2 Amazon AMI पर शुरू नहीं होगा