node.js - 无法测试 mongo 聚合 MongoError:无法识别的管道阶段名称:'$set'
问题描述
我将 mongo 聚合与 mongoose 一起使用。它工作正常,但在开玩笑时运行失败。
我得到错误:
MongoError: Unrecognized pipeline stage name: '$set'
在聚合中使用 $set 时
$set: {
isUsersContent: {
$eq: ["$teacher._id", user._id],
},
}
“猫鼬”:“^5.3.12”,“开玩笑”:“^25.1.0”,
解决方案
$set
MongoDB 聚合管道阶段仅适用于 MongoDB 4.2 及更高版本。
您可以改用$addFields
Pipeline 阶段。
$addFields: {
isUsersContent: {
$eq: ["$teacher._id", user._id],
},
}
注意:
$set
聚合管道阶段只不过是一个别名$addFields
阶段
推荐阅读
- java - 参数化 Spring bean 配置
- python - 将带有布尔输入占位符的 TensorFlow 模型转换为 TensorFlow Lite
- sql-server - SQL Server 动态 SQL 大小超过 4000 个字符
- javascript - 授权代码请求上的 Google OAuth2 response_type 错误
- android - Twitter 登录不适用于 crashlytics sdk。错误:必须首先使用 Fabric.with() 启动 Twitter Kit
- python - 如何使用烧瓶通过所有路由登录用户?
- maven - 在 jenkins 上构建的 Maven 运行两个模块的测试
- hadoop - 在现有集群中添加节点
- vba - 编译错误:excel中的预期函数或变量
- reactjs - 将表单重置为空值