0

我的 mongo 架构如下:

resourceId: {
        type: String,
    },

    resourceName: {
        type: String,
    },

    dateAndValue: [
        {
            date: { type: Date },
            value: { type: Number },
        },
    ],

将数据添加到“dateAndValue”数组后,我想删除数组中包含“0”作为值的所有对象。这是我使用的代码,但它似乎不起作用:

await QuantumResourcesManpowerAdmin.updateMany(
    { resourceId: qrmaRecord.resourceId },
    {
        $pull: {
            dateAndValue: {
                $elemMatch: { value: 0 },
            },
        },
    },
    { multi: true }
);
4

1 回答 1

0

找到了答案,$elemMatch 应该从上面的代码中删除。所以,

await QuantumResourcesManpowerAdmin.update(
    { resourceId: qrmaRecord.resourceId },
    {
        $pull: {
            dateAndValue: {
                value: 0,
            },
        },
    },
    { safe: true, multi: true }
);

可以正常工作

于 2021-12-01T13:02:34.403 回答