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

यूनिक्स टाइमस्टैम्प के आधार पर दिन के हिसाब से मोंगोडब एकत्रीकरण

MongoDB 4.0 और नया

$toDate का इस्तेमाल करें

db.session_log.aggregate([
    { "$group": {
        "_id": {
            "$dateToString": {
                "format": "%Y-%m-%d",
                "date": {
                    "$toDate": { 
                        "$multiply": [1000, "$LASTLOGIN"]
                    }
                }
            }
        },
        "count": { "$sum": 1 }
    } }
])

या $convert

db.session_log.aggregate([
    { "$group": {
        "_id": {
            "$dateToString": {
                "format": "%Y-%m-%d",
                "date": {
                    "$convert": { 
                        "input":  { 
                            "$multiply": [1000, "$LASTLOGIN"] 
                        }, 
                        "to": "date"
                    }
                }
            }
        },
        "count": { "$sum": 1 }
    } }
])

MongoDB>=3.0 और <4.0:

db.session_log.aggregate([
    { "$group": {
        "_id": {
            "$dateToString": {
                "format": "%Y-%m-%d",
                "date": {
                    "$add": [
                        new Date(0), 
                        { "$multiply": [1000, "$LASTLOGIN"] }
                    ]
                }
            }
        },
        "count": { "$sum": 1 }
    } }
])

आपको LASTLOGIN . को रूपांतरित करना होगा मान को 1000 से गुणा करके मिलीसेकंड टाइमस्टैम्प पर फ़ील्ड करें

{ "$multiply": [1000, "$LASTLOGIN"] }

, फिर किसी तिथि में कनवर्ट करें

"$add": [
    new Date(0),
    { "$multiply": [1000, "$LASTLOGIN"] }
]

और यह <कोड में किया जा सकता है>$प्रोजेक्ट अपने मिलीसेकंड समय को शून्य-मिलीसेकंड Date(0) . में जोड़कर पाइपलाइन ऑब्जेक्ट, फिर निकालें $year , $month , $dayOfMonth परिवर्तित तिथि के भाग जिनका उपयोग आप अपने $group दिन के अनुसार दस्तावेज़ों को समूहबद्ध करने के लिए पाइपलाइन।

इस प्रकार आपको अपनी एकत्रीकरण पाइपलाइन को इसमें बदलना चाहिए:

var project = {
    "$project":{ 
        "_id": 0,
        "y": {
            "$year": {
                "$add": [
                    new Date(0),
                    { "$multiply": [1000, "$LASTLOGIN"] }
                ]
            }
        },
        "m": {
            "$month": {
                "$add": [
                    new Date(0),
                    { "$multiply": [1000, "$LASTLOGIN"] }
                ]
            }
        }, 
        "d": {
            "$dayOfMonth": {
                "$add": [
                    new Date(0),
                    { "$multiply": [1000, "$LASTLOGIN"] }
                ]
            }
        }
    } 
},
group = {   
    "$group": { 
        "_id": { 
            "year": "$y", 
            "month": "$m", 
            "day": "$d"
        },  
        "count" : { "$sum" : 1 }
    }
};

एकत्रीकरण पाइपलाइन चलाना:

db.session_log.aggregate([ project, group ])

निम्नलिखित परिणाम देगा (नमूना दस्तावेज़ के आधार पर):

{ "_id" : { "year" : 2014, "month" : 1, "day" : 3 }, "count" : 1 }

उपरोक्त को एक ही पाइपलाइन में चलाने के लिए एक सुधार यह होगा कि

var group = {   
    "$group": { 
        "_id": {    
            "year": {
                "$year": {
                    "$add": [
                        new Date(0),
                        { "$multiply": [1000, "$LASTLOGIN"] }
                    ]
                }
            },
            "mmonth": {
                "$month": {
                    "$add": [
                        new Date(0),
                        { "$multiply": [1000, "$LASTLOGIN"] }
                    ]
                }
            }, 
            "day": {
                "$dayOfMonth": {
                    "$add": [
                        new Date(0),
                        { "$multiply": [1000, "$LASTLOGIN"] }
                    ]
                }
            }
        },  
        "count" : { "$sum" : 1 }
    }
};

एकत्रीकरण पाइपलाइन चलाना:

db.session_log.aggregate([ group ])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB के साथ सरणी से विशिष्ट आइटम निकाल रहा है

  2. नेवला और फ्लोट मान

  3. जाओ और MongoDB कनेक्शन पैनिक लॉग के साथ काम नहीं करेगा, कोई पहुंच योग्य सर्वर नहीं है

  4. MongoDB $asinh

  5. नेवला:उपयोगकर्ताओं की पूरी सूची प्राप्त करें