如何更新具有嵌入文档的猫鼬数组中的许多元素
Posted
技术标签:
【中文标题】如何更新具有嵌入文档的猫鼬数组中的许多元素【英文标题】:How to Update many elements in mongoose array which has embedded documents 【发布时间】:2022-01-17 10:34:52 【问题描述】:我有这个猫鼬模型
resourceId:
type: String,
,
resourceName:
type: String,
,
dateAndValue: [
date: type: Date ,
value: type: Number ,
,
],
project:
type: mongoose.Schema.Types.ObjectId,
ref: 'project',
,
我想将 dateAndValue 数组元素的所有值字段更新为给定资源 ID、给定日期范围内的给定项目的“0”!
await QuantumResourcesManpowerAdmin.updateMany(
project,
resourceId,
'dateAndValue.date': $gte: startDate, $lte: endDate ,
,
$set:
'dateAndValue.$.value': 0,
,
,
upsert: true
);
res.status(200).json( success: true );
这是我使用的代码。它返回成功但不进行任何更新。 所有输入都是正确的,只有 updateMany 查询有问题,所有其他功能都有效!
【问题讨论】:
【参考方案1】:await QuantumResourcesManpowerAdmin.updateMany(
project,
resourceId,
'dateAndValue.date': $gte: startDate, $lte: endDate ,
,
$set:
'dateAndValue.$[element].value': 0,
,
,
arrayFilters:['element.date':$gte: startDate, $lte: endDate ] ,upsert: true
);
res.status(200).json( success: true );
【讨论】:
'dateAndValue.$[ ].value':0 这段代码更新了整个数组,但我只想在给定的日期范围内更新以上是关于如何更新具有嵌入文档的猫鼬数组中的许多元素的主要内容,如果未能解决你的问题,请参考以下文章