last update: Thu, 18 Oct 2018 01:01:40 GMT ( 6 years ago )
aggregate
以下のようなデータが複数ある状況で、_id: "xxxxxx",
id : "a1JVEzAV",
datetime: 10393382932,
date : "2016/9/1 09:09:01.788"
・datetime の値が、2016/08/1 0:00:00.000 以上のデータ。
・date の値のyyyy/m/d の部分の日付でグループ化。
・上記のグループごとの件数。
がとりたい場合は、以下のように書く。
※yyyy/mm/dd の形式でデータが保存されていないため、
2016/9/1 と2016/9/30 を取得したいので、substr では、最大桁の9を第3引数にしてます。
[
{"$match":{
"id":"a1JVEzAV",
"datetime":{$gte : new Date("2016/08/01").getTime()}
}},
{"$group":{
"_id":{$substr: ["$date",0,9]},
"total":{"$sum":1}
}}
]
mongoDB あれこれ
mongoDB での文章のサンプル