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
相关产品推荐
相关产品推荐

