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 的原子性

Mongoose 5.x.x:创建架构需要“新”吗?

在 Angular 应用程序的 API 调用中处理发送两个参数

使用 Mongoose 搜索用户

Mongoose:我如何避免回调地狱,同时允许对不返回承诺的 mongoose 方法进行存根?

为啥 Mongoose 不允许我访问 JSON 属性?