无法测试 mongo 聚合 MongoError:无法识别的管道阶段名称:'$set'

Nid*_*dor 3 mongoose mongodb node.js aggregation-framework jestjs

我在猫鼬中使用 mongo 聚合。它工作正常,但在开玩笑时失败。

我收到错误:

MongoError: Unrecognized pipeline stage name: '$set'
Run Code Online (Sandbox Code Playgroud)

在聚合中使用 $set 时

$set: {
            isUsersContent: {
              $eq: ["$teacher._id", user._id],
            },
      }
Run Code Online (Sandbox Code Playgroud)

“猫鼬”:“^5.3.12”,“开玩笑”:“^25.1.0”,

hhh*_*a36 6

$setMongoDB的聚集流水线阶段将只工作了MongoDB的版本4.2及以上。

您可以改用$addFieldsPipeline 阶段。

$addFields: {
            isUsersContent: {
              $eq: ["$teacher._id", user._id],
            },
      }
Run Code Online (Sandbox Code Playgroud)

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