MongoDB聚合错误:管道阶段规范对象必须只包含一个字段



我正试图从与太平洋时区匹配的推文数据集中获取screen_nameFriendsToFollowerRatio,当我尝试运行下面的查询时,我得到了错误:

MongoServerError:管道阶段规范对象必须只包含一个字段。

db.tweets.aggregate([
{$match:{time_zone:"Pacific Time (US & Canada)", verified:false}},
{$project:{screen_name:true},
FriendstoFollowersRatio:{$divide:["$friends_count", "$followers_count"]}
}
])

我真的不知道为什么会发生这种情况,因为我看到了另一个格式几乎相同的例子,它起了作用,所以我一定是在哪里出错了,如果有任何帮助,我将不胜感激。

错误消息指的是管道中的第二个阶段(本应是$project(实际上有两个文档在其中。这是因为FriendstoFollowersRatio的嵌套错误。格式化后,您当前的管道是:

[
{
"$match":{
"time_zone":"Pacific Time (US & Canada)",
"verified":false
}
},
{
"$project":{
"screen_name":true
},
"FriendstoFollowersRatio":{
"$divide":[
"$friends_count",
"$followers_count"
]
}
}
]

相反,它应该将该字段嵌套在$project:中

[
{
"$match":{
"time_zone":"Pacific Time (US & Canada)",
"verified":false
}
},
{
"$project":{
"screen_name":true,
"FriendstoFollowersRatio":{
"$divide":[
"$friends_count",
"$followers_count"
]
}
}
}
]

此处的游乐场链接

相关内容

最新更新