Mongoose 5.x 不允许传递一系列运算符
Posted
技术标签:
【中文标题】Mongoose 5.x 不允许传递一系列运算符【英文标题】:Mongoose 5.x disallows passing a spread of operators 【发布时间】:2019-09-30 11:33:17 【问题描述】:聚合查询返回错误。
'Mongoose 5.x 不允许将一系列运算符传递给Model.aggregate()
。而不是Model.aggregate( $match , $skip )
,而是Model.aggregate([ $match , $skip ])
',
我正在使用 mongoose 和 MongoDb 之类的版本
"猫鼬": "^5.5.4", mongod 版本:3.6.12
请建议我,我会非常感谢你。
【问题讨论】:
嗯,我猜你应该按照这个错误描述的方式更改你的代码 Mongodb 聚合现在作为pipeline[]
工作,文档进入管道,将文档转换为聚合结果
【参考方案1】:
之前
Model.aggregate(
$group:
_id: "$id",
count: $sum: "$like.count"
)
之后
Model.aggregate([
$group:
_id: "$id",
count: $sum: "$like.count"
])
说明:之前Model.aggregate()
用来取不同的json对象,现在改API取数组了。
只需使用[]
包装您的 JSON 对象即可。
【讨论】:
以上是关于Mongoose 5.x 不允许传递一系列运算符的主要内容,如果未能解决你的问题,请参考以下文章
传递文档数组时,Mongoose 中 Model.create 的原子性
在 Angular 应用程序的 API 调用中处理发送两个参数