3
私は私の文書があるデータベースマングース集約GROUPBY、週、年
ためnodejsとのMongoDBを使用しています:周波数値が可能な
{
"_id": "58466d6a0b3f4d2e2fa22905",
"updatedAt": "2016-12-06T07:48:58.435Z",
"createdAt": "2017-12-06T07:48:58.435Z",
"userId": "56d04e265a2100c72a311334",
"__v": 0
}
ユーザーがクライアント側でfromDateから、toDateまで及び周波数を与えます0,1,2 ここで、0は曜日を意味し、1は週を意味し、2は年を意味する。上記のデータに基づいて
iは元のため
レポートを生成します:ユーザーがfromDateから= 2016年12月1日からtoDateまで= 2016年12月6日を与えれば。周波数が0ある場合
結果は、周波数が2であれば結果は
あろう周波数が1であれば結果は{
2016-12-01 to 2016-12-06:{
count:16
}
}
あろう
{
2016-12-01:{
count:1
}
2016-12-02:{
count:7
}
2016-12-06:{
count:8
}
}
あろう
{ 2016:{ count:16 } }
また、I: var aggregate = [{
$match: {
createdAt: {
$gte: fromDate,
$lt: toDate
}
}
}, {
$group: {
// what should i will do here
},
count: {
$sum: 1
}
}
}]
return LoginReportModel.aggregate(aggregate).exec();
ORいずれも編集
を歓迎lodashを使用してのような他のより良い方法を知っている:私はこのように行われてきた文書
の数でカウント
しますユーザーIDで文書数が一意であることを希望する
は、あなたは上記の問題 – Sam
私は例を追加した上で私を助けることができる、唯一の違いは、周波数1のために、それは週番号を出力していることです"2016-12-01 to 2016-12-06"のような文字列の代わりにグループキーとして使用します。それが役に立てば幸い! – Rudi
助けてくれてありがとう!この事は私も$ dayOfMonthと$ yearで達成することができますが、主な問題は週です..どのように私は上記のようにデータを上記のように日付に変換することができますこのレポートを生成するためにファイルをExcelの上に書く – Sam