You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB 4.0版本聚合管道中$set操作符的替代方案咨询

MongoDB 4.0版本替代$set聚合阶段的方案

MongoDB 聚合管道中的$set阶段为4.2版本新增特性,在4.0版本中可以直接使用**$addFields** 完全替代,两者语法、功能完全一致,仅名称不同,无需修改其他业务逻辑即可实现完全相同的运行效果。

你只需要把代码中两处$set配置直接替换为$addFields即可,修改后的代码如下:

const templateList = await this.templatesModel.aggregate([
      {
        $facet: {
          data: [
            {
              $lookup:
              {
                from: 'extensions',
                localField: 'extensionName',
                foreignField: 'extension',
                as: 'extension',
              },
            },
            { $unwind: '$extension' },
            { $addFields: { 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' },
            { $addFields: { bundleIds: '$extension.bundle' } },
            { $match: filter },
            { $count: 'count' },
          ],
        },
      },
    ]).exec();

内容的提问来源于stack exchange,提问作者Piotr Sikora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:27:01