私はmongodbコレクションの集計に取り組んでいます。私のmongodbコレクションにはタイムスタンプにcreation_timeがあります。同じ日の結果を収集し、翌日の結果と集計するにはどうすればよいですか?5日間データを収集する必要があると仮定します。
{
"_id" : "1522845653126"
},
{
"_id" : "1522838153324"
},
{
"_id" : "1513421466415"
},
{
"_id" : "1515488183153"
},
{
"_id" : "1521571234500"
}
特定の日に保存されるエントリの数は?そして、次のように、集計の現在の合計を返す結果をクエリしたいとします。
{
time: "2013-10-10"
count: 3,
},
{
time: "2013-10-11"
total: 7,
}
このようなもの。私はこのようなことをしようとしました
db.coll.aggregate([
{
$group:{
_id:new Date($creation_time).toLocaleDateString(),
$count:{$add:1}
}
time:new Date($creation_time).toLocaleDateString()
}
])
それは動作しません。どこで間違っていますか?私はmongodbが初めてです。助けてくれてありがとう
$toDate
タイムスタンプをISO日付に変換する集約および $toLong
文字列のタイムスタンプをmongodb 3.6の整数値に変換する
db.collection.aggregate([
{ "$project": {
"_id": {
"$toDate": {
"$toLong": "$_id"
}
}
}},
{ "$group": {
"_id": { "$dateToString": { "format": "%Y-%m-%d", "date": "$_id" } },
"count": { "$sum": 1 }
}}
])
試してみてください here
そして以前のバージョンでは
db.collection.aggregate([
{ "$project": {
"date": { "$add": [ new Date(0), "$_id" ] }
}}
])