nan*_*eck 18 mongodb mongodb-query aggregation-framework
我是mongodb的新手并且第一次尝试聚合.在这里,我试图按每15分钟对推文进行分组.当我尝试在mongo控制台中运行以下查询时,我收到错误:
管道阶段规范对象必须只包含一个字段.
db.hashtag.aggregate([
{ "$group": {
"_id": {
"year": { "$year": "$tweettime" },
"dayOfYear": { "$dayOfYear": "$tweettime" },
"interval": {
"$subtract": [
{ "$minute": "$tweettime" },
{ "$mod": [{ "$minute": "$tweettime"}, 15] }
]
}
}},
"count": { "$sum": 1 }
}
])
Run Code Online (Sandbox Code Playgroud)
我无法在SO中找到原因的好解释.请分享您对此主题的看法以及查询错误的原因.
chr*_*dam 25
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 */
}
])
Run Code Online (Sandbox Code Playgroud)
{
"$group": {
"_id": {
"year": { "$year": "$tweettime" },
"dayOfYear": { "$dayOfYear": "$tweettime" },
"interval": {
"$subtract": [
{ "$minute": "$tweettime" },
{ "$mod": [{ "$minute": "$tweettime"}, 15] }
]
}
},
"count": { "$sum": 1 }
}
}
])
Run Code Online (Sandbox Code Playgroud)