0

我有这个猫鼬模型

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 查询有问题,所有其他功能都有效!

4

1 回答 1

0
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 });
于 2021-12-14T03:24:27.750 回答