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

मैं Node.js और Mongoose का उपयोग करके कुल सकारात्मक, कुल नकारात्मक मूल्य और राशि की गणना कैसे कर सकता हूं?

यह ध्यान में रखते हुए कि अपेक्षित परिणाम summary . से संख्याएं और मान हैं संग्रह संख्याएँ हैं (अन्यथा आपको उन्हें संख्याएँ बनाने की आवश्यकता है) यहाँ एक एकत्रीकरण है जो परिणाम की गणना करता है:

db.getCollection('userpricing').aggregate([
    {$group: {
        _id:"$user_id", 
        user_id: {$first: "$user_id"}, 
        Totalpositiveprice:{$sum:{$cond:[{ '$gt': ['$price', 0]}, "$price", 0]}}, 
        Totalnegativeprice:{$sum:{$cond:[{ '$lt': ['$price', 0]}, "$price", 0]}},
        Balanceprice:{"$sum":"$price"}}
     },
    {
      $lookup:
        {
          from: "summary",
          localField: "user_id",
          foreignField: "user_id",
          as: "user_id2"
        }
   },
   {$project: {
    _id:0, 
    user_id:1, 
    Totalpositiveprice: {$sum: ["$Totalpositiveprice", {$sum: "$user_id2.Totalpositiveprice"}] },
    Totalnegativeprice: {$sum: ["$Totalnegativeprice", {$sum: "$user_id2.Totalnegativeprice"}] },
    Balanceprice: {$sum: ["$Balanceprice", {$sum: "$user_id2.Balanceprice"}] },
}},

     {$out: "summary"}
]).pretty()

परिणाम:

db.summary.find().pretty()

{
    "_id" : ObjectId("584fde2906c7385883be0d15"),
    "user_id" : 2,
    "Totalpositiveprice" : 10000,
    "Totalnegativeprice" : 0,
    "Balanceprice" : 10000
}
{
    "_id" : ObjectId("584fde2906c7385883be0d16"),
    "user_id" : 1,
    "Totalpositiveprice" : 23000,
    "Totalnegativeprice" : -10000,
    "Balanceprice" : 13000
}

बाद में आपको जरूरत पड़ने पर उन्हें स्ट्रिंग में बदलने की जरूरत है।

नोट: परिणाम यह सारांश संग्रह को नए परिकलित (और अपडेट किए गए) मानों के साथ ओवरराइड करता है। पहले अपने परिणामों का बेहतर परीक्षण करें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सरणी वाले दस्तावेज़ ढूंढें जिनमें कोई विशिष्ट मान नहीं है

  2. कैसे सुनिश्चित करने के लिए एक एसिंक्रोनस कॉल नेवला में एक समारोह से लौटने से पहले निष्पादित किया जाता है?

  3. MongoDB - बड़ी संख्या में डेटाबेस

  4. उबंटू से मोंगोडीबी को अनइंस्टॉल करें

  5. ऐरे से नवीनतम उप-दस्तावेज़ प्राप्त करें