【问题标题】:Cannot test mongo aggregation MongoError: Unrecognized pipeline stage name: '$set'无法测试 mongo 聚合 MongoError:无法识别的管道阶段名称:'$set'
【发布时间】:2020-10-18 20:07:02
【问题描述】:

我正在使用 mongo 聚合和 mongoose。它工作正常,但在开玩笑时运行失败。

我得到错误:

MongoError: Unrecognized pipeline stage name: '$set'

在聚合中使用 $set 时

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

"猫鼬": "^5.3.12", “笑话”:“^25.1.0”,

【问题讨论】:

    标签: node.js mongodb mongoose jestjs aggregation-framework


    【解决方案1】:

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

    您可以改用$addFields Pipeline 阶段。

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

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

    【讨论】:

    • 太棒了,谢谢!我以为猫鼬会默认使用最新的稳定版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2014-07-10
    • 2021-02-10
    • 2019-09-01
    • 2020-10-07
    相关资源
    最近更新 更多