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

mongoose.js . का उपयोग करके महीने और साल के अनुसार समूह

Mongoose, MongoDB एकत्रीकरण ढांचे के चारों ओर एक हल्का आवरण प्रदान करता है। यदि आप एकत्रीकरण में नए हैं, तो आप इसके बारे में MongoDB डॉक्स से अधिक जान सकते हैं:http:/ /docs.mongodb.org/manual/aggregation/

अपने डेटा को ऊपर वर्णित फ़ॉर्म में मालिश करने के लिए, आप $group संचालन की एक श्रृंखला के साथ एक एकत्रीकरण पाइपलाइन का उपयोग कर सकते हैं। यहाँ यह नेवला ढांचे का उपयोग कर रहा है:

var dateSchema = mongoose.Schema({…});
var DateItem = mongoose.model('DateItem', dateSchema);

DateItem.aggregate(
      { $group : { 
           _id : { year: { $year : "$accessDate" }, month: { $month : "$accessDate" },day: { $dayOfMonth : "$accessDate" }}, 
           count : { $sum : 1 }}
           }, 
      { $group : { 
           _id : { year: "$_id.year", month: "$_id.month" }, 
           dailyusage: { $push: { day: "$_id.day", count: "$count" }}}
           }, 
      { $group : { 
           _id : { year: "$_id.year" }, 
           monthlyusage: { $push: { month: "$_id.month", dailyusage: "$dailyusage" }}}
           }, 
      function (err, res)
           { if (err) ; // TODO handle error 
             console.log(res); 
           });
});

पहले $group के परिणामस्वरूप इस फ़ॉर्म के दस्तावेज़ होंगे, प्रत्येक दिन के लिए एक:

{ 
  "_id" : { "year" : 2013, "month" : 8, "day" : 15 },
  "count" : 1
}

दूसरे $group का परिणाम महीने के आधार पर समूहित दस्तावेज़ों में होगा:

{
  "_id" : { "year" : 2012, "month" : 11 },
 "dailyusage" : [
          { "day" : 6, "count" : 1 },
          { "day" : 9, "count" : 1 },
          ... ]
},

और तीसरे $group के परिणामस्वरूप और भी बड़े दस्तावेज़ होंगे, प्रत्येक वर्ष के लिए एक।

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




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी:घातक त्रुटि:कक्षा 'मोंगो क्लाइंट' नहीं मिली

  2. मैं Homebrew के साथ नवीनतम MongoDB में अपडेट क्यों नहीं कर सकता?

  3. मोंगोडीबी जावा पुल

  4. MongoClient आयात नहीं कर सकता

  5. क्या मैं एक मोंगो शैल जावास्क्रिप्ट फ़ाइल के अंदर एक सीएसवी फ़ाइल पढ़ सकता हूं?