node.js - 无法测试 mongo 聚合 MongoError : Unrecognized pipeline stage name: '$set'

标签 node.js mongodb mongoose jestjs aggregation-framework

我将 mongo 聚合与 mongoose 一起使用。它工作正常,但在开 Jest 时失败。
我收到错误:

MongoError: Unrecognized pipeline stage name: '$set'
在聚合中使用 $set 时
$set: {
            isUsersContent: {
              $eq: ["$teacher._id", user._id],
            },
      }
" Mongoose ": "^5.3.12",
"jest": "^25.1.0",

最佳答案

$set MongoDB 聚合管道阶段仅适用于 MongoDB 4.2 及更高版本。
您可以使用 $addFields管道阶段代替。

$addFields: {
            isUsersContent: {
              $eq: ["$teacher._id", user._id],
            },
      }

Note: The $set Aggregation Pipeline stage is nothing but an alias $addFields stage

关于node.js - 无法测试 mongo 聚合 MongoError : Unrecognized pipeline stage name: '$set' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62624944/

相关文章:

angularjs - 如何测试使用 MEAN 堆栈 API 的 Angular 前端

node.js - 从 json 创建 mongoose schema

javascript - Node Acl 动态链接

node.js - 使用环境变量中的 token 从私有(private) Github 存储库安装 NPM 包

java - Play Framework 2.5如何添加mongoDB?

node.js - ( Node :32032) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoError: Authentication failed

node.js - 在保存嵌套模式数组之前进行 Mongoose 空值检查

javascript - 如何从 javascript 中包含 2 个或更多项目的值获取数据

node.js - "callback"参数必须是 Node.js 函数

linux - 使用 npm 安装后找不到命令