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

मोंगो:$ सप्ताह तक समूह कैसे करें लेकिन इसके बजाय प्रत्येक सप्ताह की शुरुआत तिथि और समाप्ति तिथि लौटाएं?

हालांकि यह करने योग्य है, कोड को कम पठनीय और अधिक जटिल बनाता है।

मैं $group . को फिर से लिखूंगा year . को शामिल करने का चरण weeks . के साथ और $project जोड़ें आवश्यकता के अनुसार डेटा को प्रारूपित करने के लिए चरण।

db.collection.aggregate([
  {
    "$group": {
      "_id": {
        "week": {
          "$week": {"$subtract": ["$at", 25200000]}  // <-- Changes timezone to -07:00
        },
        "year": {
          "$year": {"$subtract": ["$at", 25200000]}  // <-- Changes timezone to -07:00
        },
      },
      // <-- Add keys to be added in group along with its logics
      "averageValue": {
        "$avg": "$readings.level_1"
      }
    },
  },
  {
    "$project": {
      "_id": {
        "startDate": {
          "$dateToString": {
            "date": {
              "$dateFromParts": {
                "isoWeekYear": "$_id.year",
                "isoWeek": "$_id.week"
              }
            },
            "format": "%Y-%m-%d",
          },
        },
        "endDate": {
          "$dateToString": {
            "date": {
              "$add": [
                {
                  "$dateFromParts": {
                    "isoWeekYear": "$_id.year",
                    "isoWeek": "$_id.week"
                  }
                },
                518400000,
              ],
            },
            "format": "%Y-%m-%d",
          },
        },
      },
      // <-- Add remaining keys to be projected
      "averageValue": 1,
    },
  },
])

मुझे बताएं कि क्या आपको प्रत्येक चरण और उपयोग किए गए ऑपरेटर के स्पष्टीकरण की आवश्यकता है और मैंने इसका उपयोग क्यों किया।

मोंगो खेल का मैदान नमूना निष्पादन



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नोड.जेएस एक्सप्रेस पासपोर्ट रूटिंग

  2. संयोजित क्षेत्रों के परिणाम का उपयोग करके दस्तावेज़ को अपडेट करें

  3. $group और $push के साथ उप-दस्तावेज़ में MongoDb एकत्रीकरण क्वेरी

  4. विजुअल स्टूडियो में mongodb-cxx-driver के साथ प्रोजेक्ट कैसे सेट करें?

  5. MongoDB - वृद्धिशील मान के बजाय अद्वितीय पहचानकर्ता के रूप में 12 बाइट्स स्ट्रिंग का उपयोग करने का लाभ