首页 > 解决方案 > 无法测试 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”,

标签: node.jsmongodbmongoosejestjsaggregation-framework

解决方案


$setMongoDB 聚合管道阶段仅适用于 MongoDB 4.2 及更高版本。

您可以改用$addFieldsPipeline 阶段。

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

注意:$set聚合管道阶段只不过是一个别名$addFields阶段


推荐阅读