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

mongoDB में कुल मिलाकर यह परिणाम कैसे प्राप्त करें?

मोंगो 3.4 संस्करण

आइटम की कीमत और मूल्य को गुणा करने के लिए $map और आइटम की कीमत और मूल्य के योग की गणना करने के लिए $reduce और लागत की कीमत के योग की गणना करने के लिए $reduce करें। अंतिम राशि प्राप्त करने के लिए पहले से घटाए गए मूल्यों को $ घटाएं।

aggregate([{
    $project: {
        _id: 1,
        amount: {
            $subtract: [{
                $reduce: {
                    input: {
                        $map: {
                            input: "$items",
                            as: "item",
                            in: {
                                $multiply: ["$$item.value", "$$item.price"]
                            }
                        }
                    },
                    initialValue: 0,
                    in: {
                        $add: ["$$value", "$$this"]
                    }
                }
            }, {
                $reduce: {
                    input: "$costs.price",
                    initialValue: 0,
                    in: {
                        $add: ["$$value", "$$this"]
                    }
                }
            }]
        }

    }
}])

मोंगो 3.x संस्करण

आइटम के मूल्य और मूल्य को गुणा करने वाला पहला $प्रोजेक्ट। आइटम और लागत फ़ील्ड दोनों के योग की गणना करने के लिए अगला समूह, जिसके परिणामस्वरूप प्रत्येक आइटम और लागत फ़ील्ड के लिए एक सरणी मान होगा और अंतिम प्रोजेक्ट एक दूसरे से मानों को घटाने के लिए $arrayElemAt के साथ दोनों सरणियों से केवल सरणी मान को देखता है।

aggregate(
    [{
        $project: {
            vpItems: {
                $map: {
                    input: "$items",
                    as: "item",
                    in: {
                        $multiply: ["$$item.value", "$$item.price"]
                    }
                }
            },
            costs: '$costs'
        }
    }, {
        $group: {
            _id: '$_id',
            vpItems: {
                $addToSet: {
                    $sum: '$vpItems'
                }
            },
            pCosts: {
                $addToSet: {
                    $sum: '$costs.price'
                }
            }
        }
    }, {
        $project: {
            _id: 1,
            amount: {
                $subtract: [{
                    $arrayElemAt: ["$vpItems", 0]
                }, {
                    $arrayElemAt: ["$pCosts", 0]
                }]
            }
        }
    }])

मोंगो 2.6 संस्करण

आइटम की कीमत और मूल्य को गुणा करके लौटाए गए मानों के योग को $अनविंड करें और समूह करें और आइटम की कीमत और मूल्य के योग की गणना करने के लिए $अनविंड लागतें और अंतिम राशि की गणना करने के लिए पिछले समूह से मूल्यों को घटाएं।

aggregate([{
      $unwind: '$items'
  }, {
      $group: {
          _id: '$_id',
          totalItems: {
              $sum: {
                  $multiply: ["$items.value", "$items.price"]
              }
          },
          costs: {
              $first: '$costs'
          }
      }
  }, {
      $unwind: '$costs'
  }, {
      $group: {
          _id: '$_id',
          totalItems: {
              $first: '$totalItems'
          },
          totalPrice: {
              $sum: '$costs.price'
          }
      }
  }, {
      $project: {
          _id: 1,
          amount: {
              $subtract: ['$totalItems', '$totalPrice']
          }
      }
  }])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला उप-दस्तावेज़ छँटाई

  2. Mongodb C# ड्राइवर असमर्थित फ़िल्टर त्रुटि विशिष्ट linq विधेय के साथ

  3. प्रदर्शन पर MongoDB प्रभाव में दिनांक समय संग्रहीत करना

  4. MongoDB:--query विकल्प के साथ mongoexport का उपयोग करते समय समस्या

  5. स्प्रिंग डेटा और मोंगोडीबी भंडार - एक अद्यतन क्वेरी कैसे बनाएं?