私はmongodbを初めて使い、初めて集計を試みました。ここでは、15分ごとにグループ化されたツイートの数を取得しようとしています。 mongoコンソールで以下のクエリを実行しようとすると、エラーが発生します。
パイプラインステージ仕様オブジェクトには、フィールドを1つだけ含める必要があります。
db.hashtag.aggregate([
{ "$group": {
"_id": {
"year": { "$year": "$tweettime" },
"dayOfYear": { "$dayOfYear": "$tweettime" },
"interval": {
"$subtract": [
{ "$minute": "$tweettime" },
{ "$mod": [{ "$minute": "$tweettime"}, 15] }
]
}
}},
"count": { "$sum": 1 }
}
])
SOで理由の良い説明を見つけることができませんでした。この件に関するご意見と、クエリにエラーがある理由をお聞かせください。
認識できないパイプラインステージ仕様があるため、MongoDBは不満を言っています"count": { "$sum": 1 }
パイプラインで。
適切にフォーマットされた場合の元のパイプライン
db.hashtag.aggregate([
{
"$group": {
"_id": {
"year": { "$year": "$tweettime" },
"dayOfYear": { "$dayOfYear": "$tweettime" },
"interval": {
"$subtract": [
{ "$minute": "$tweettime" },
{ "$mod": [{ "$minute": "$tweettime"}, 15] }
]
}
}
},
"count": { "$sum": 1 } /* unrecognised pipeline specification here */
}
])
{
"$group": {
"_id": {
"year": { "$year": "$tweettime" },
"dayOfYear": { "$dayOfYear": "$tweettime" },
"interval": {
"$subtract": [
{ "$minute": "$tweettime" },
{ "$mod": [{ "$minute": "$tweettime"}, 15] }
]
}
},
"count": { "$sum": 1 }
}
}
])