首页 > 解决方案 > 在 mongoDB 中替换 $Set

问题描述

您好,我对 mongoDB 的调用有一个小问题。我在我的本地主机上使用 $set 功能,它工作得非常好,但是在生产环境中使用它后,我们收到错误,因为 mongoDB 版本是 4.0,我们无法升级数据库,所以我的问题是,在 4.0 版本中是否可以替换 $Set?我可以使用任何东西来实现相同的通话吗?

打电话给mongo:

const templateList = await this.templatesModel.aggregate([
      {
        $facet: {
          data: [
            {
              $lookup:
              {
                from: 'extensions',
                localField: 'extensionName',
                foreignField: 'extension',
                as: 'extension',
              },
            },
            { $unwind: '$extension' },
            { $set: { bundleIds: '$extension.bundle' } },
            { $match: filter },
            { $skip: offset },
            { $limit: limit },
            {
              $project: {
                extensionName: 1,
                isDefault: 1,
                previewImage: 1,
                published: 1,
                title: 1,
                updated: 1,
              },
            },
          ],
          totalCount: [
            {
              $lookup:
              {
                from: 'extensions',
                localField: 'extensionName',
                foreignField: 'extension',
                as: 'extension',
              },
            },
            { $unwind: '$extension' },
            { $set: { bundleIds: '$extension.bundle' } },
            { $match: filter },
            { $count: 'count' },
          ],
        },
      },
    ]).exec();

标签: mongodbaggregatenestjs

解决方案


您可以替换$set$addFields.

这两个阶段都执行相同的任务,因为$set只不过是$addFields的别名。


推荐阅读