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

मोंगोडब में क्रमशः सप्ताह, महीने, वर्ष में प्रत्येक दिन, सप्ताह, महीने के अनुसार डेटा कैसे एकत्रित करें

क्वेरी से जुड़े सभी दिनांक समय के लिए आपको इसे दिनांक फ़ील्ड से $प्रोजेक्ट करना होगा - यहाँ मैनुअल

इस मामले में एकत्रीकरण ढांचा मदद के साथ आता है - कृपया नीचे मूल क्वेरी देखें, जिसमें दैनिक और साप्ताहिक वजन कुल है, ताकि आप इस क्वेरी को अन्य समय अवधि के लिए बदल सकें या प्रति अवधि एक क्वेरी का उपयोग कर सकें:

db.timing.aggregate([{
        $project : {
            year : {
                $year : "$date"
            },
            month : {
                $month : "$date"
            },
            week : {
                $week : "$date"
            },
            day : {
                $dayOfWeek : "$date"
            },
            _id : 1,
            weight : 1
        }
    }, {
        $group : {
            _id : {
                year : "$year",
                month : "$month",
                week : "$week",
                day : "$day"
            },
            totalWeightDaily : {
                $sum : "$weight"
            }
        }
    },
    {
        $group : {

            _id : {
                year : "$_id.year",
                month : "$_id.month",
                week : "$_id.week"
            },
            totalWeightWeekly : {
                $sum : "$totalWeightDaily"
            },
            totalWeightDay : {
                $push : {
                    totalWeightDay : "$totalWeightDaily",
                    dayOfWeek : "$_id.day"
                }
            }
        }
    }, {
        $match : {
            "_id.month" : 3
        }
    }
])

मेरे डमी डेटा के लिए महीने 3 के उदाहरण परिणाम नीचे हैं:

{
    "_id" : {
        "year" : 2016,
        "month" : 3,
        "week" : 10
    },
    "totalWeightWeekly" : 600,
    "totalWeightDay" : [ 
        {
            "totalWeightDay" : 200,
            "dayOfWeek" : 7
        }, 
        {
            "totalWeightDay" : 400,
            "dayOfWeek" : 6
        }
    ]
}
{
    "_id" : {
        "year" : 2016,
        "month" : 3,
        "week" : 9
    },
    "totalWeightWeekly" : 1000,
    "totalWeightDay" : [ 
        {
            "totalWeightDay" : 200,
            "dayOfWeek" : 4
        }, 
        {
            "totalWeightDay" : 600,
            "dayOfWeek" : 3
        }, 
        {
            "totalWeightDay" : 200,
            "dayOfWeek" : 7
        }
    ]
}
{
    "_id" : {
        "year" : 2016,
        "month" : 3,
        "week" : 12
    },
    "totalWeightWeekly" : 400,
    "totalWeightDay" : [ 
        {
            "totalWeightDay" : 200,
            "dayOfWeek" : 7
        }, 
        {
            "totalWeightDay" : 200,
            "dayOfWeek" : 2
        }
    ]
}
{
    "_id" : {
        "year" : 2016,
        "month" : 3,
        "week" : 13
    },
    "totalWeightWeekly" : 200,
    "totalWeightDay" : [ 
        {
            "totalWeightDay" : 200,
            "dayOfWeek" : 3
        }
    ]
}

और आवश्यकतानुसार आकार बनाने के लिए आप $प्रोजेक्ट चरण का उपयोग कर सकते हैं

   {$project:{
                _id:0,
                "year" : "$_id.year", //this could be ommited but use $match to avoid sum of other years
                "month" : "$_id.month",  //this could be ommited but use $match to avoid sum of other months
                "week" :"$_id.week",                
                totalWeightWeekly:1

                }}
{
    "totalWeightWeekly" : 600,
    "year" : 2016,
    "month" : 3,
    "week" : 10
}

किसी भी टिप्पणी का स्वागत है!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. JBAS011445:दृढ़ता प्रदाता 'org.hibernate.ogm.jpa.HibernateOgmPersistence' के लिए एडेप्टर प्राप्त करने में विफल

  2. MongoDB में $अनविंड ऑपरेटर क्या है?

  3. Mongodb में समानांतर सरणियों को अनुक्रमित करना

  4. मोंगोडब प्रविष्टि से पता चलता है 'दस्तावेजों में तार वैध यूटीएफ -8 होना चाहिए'

  5. संग्रह में सभी दस्तावेजों को दोबारा बदलें