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

mongodb . में तिथियों के अनुसार समूह

मोंगो एकत्रीकरण ढांचे का उपयोग करके नया उत्तर

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

db.col.aggregate(
   { $group: { _id: { $dayOfYear: "$date"},
               click: { $sum: 1 } } }
   )

यह कुछ इस तरह लौटाएगा:

[
    {
        "_id" : 144,
        "click" : 165
    },
    {
        "_id" : 275,
        "click" : 12
    }
]

आपको $match . का उपयोग करना होगा क्वेरी को उस दिनांक सीमा तक सीमित करने के लिए जिसमें आप रुचि रखते हैं और $project _id का नाम बदलने के लिए से date . तक . आप वर्ष के दिन को एक तिथि में कैसे परिवर्तित करते हैं, पाठक के लिए एक अभ्यास के रूप में छोड़ दिया जाता है। :-)

10gen में बुकमार्क करने लायक एक आसान SQL से Mongo एकत्रीकरण रूपांतरण चार्ट है। दिनांक एकत्रीकरण ऑपरेटरों पर एक विशिष्ट लेख भी है।

थोडा और अधिक उत्साही होने के लिए, आप इसका उपयोग कर सकते हैं:

db.col.aggregate([
  { $group: {
      _id: {
        $add: [
         { $dayOfYear: "$date"}, 
         { $multiply: 
           [400, {$year: "$date"}]
         }
      ]},   
      click: { $sum: 1 },
      first: {$min: "$date"}
    }
  },
  { $sort: {_id: -1} },
  { $limit: 15 },
  { $project: { date: "$first", click: 1, _id: 0} }
])

जो आपको नवीनतम 15 दिन देगा और date . में प्रत्येक दिन के भीतर कुछ डेटाटाइम लौटाएगा खेत। उदाहरण के लिए:

[
    {
        "click" : 431,
        "date" : ISODate("2013-05-11T02:33:45.526Z")
    },
    {
        "click" : 702,
        "date" : ISODate("2013-05-08T02:11:00.503Z")
    },
            ...
    {
        "click" : 814,
        "date" : ISODate("2013-04-25T00:41:45.046Z")
    }
]


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में दस्तावेज़ का आकार प्राप्त करने के 2 तरीके

  2. ट्रैकिंग MongoDB मेमोरी उपयोग

  3. स्पार्क-सबमिट के माध्यम से स्पार्क को अतिरिक्त जार पास करना

  4. MongoDB संग्रह में एक साथ कई आइटम कैसे सम्मिलित करें?

  5. मैं अपनी वस्तुओं को मान्य करने के लिए स्प्रिंग-डेटा-मोंगोडीबी कैसे प्राप्त करूं?