MongoDB 4.0 और नया
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 ])