mongodb - 在 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();
解决方案
您可以替换$set
为$addFields
.
这两个阶段都执行相同的任务,因为$set只不过是$addFields的别名。
推荐阅读
- grails - 如何在 grails 3.3.11 中深度克隆域对象?
- python - 获取前一天的数据来计算新的列数据
- python - 如何使用各自的值加入两个列表
- c# - 从另一个程序接收 JSON 编码信息到我的 GUI
- javascript - Google Firebase,注册和登录错误警报
- php - 使用 sqlsrv 调用具有多个结果集的存储过程 - 没有错误接收
- javascript - 如何禁止在移动设备上使用网站
- sed - 如何删除 sed 地址范围最后一行中的逗号?
- batch-file - 批处理:使用特定的管道分隔符将值拆分为单独的行
- django - Django 子查询每家公司的平均员工工资