"$pull" 不删除 mongoose 数组的嵌入文档

"$pull" doesn't delete the embedded documents of mongoose array

我的 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 }
);

找到答案,上面的代码中应该去掉$elemMatch。所以,

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

可以正常工作