【问题标题】:"$pull" doesn't delete the embedded documents of mongoose array"$pull" 不会删除 mongoose 数组的嵌入文档
【发布时间】:2022-01-08 01:24:32
【问题描述】:

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

【问题讨论】:

    标签: node.js arrays mongodb mongoose embedded-documents


    【解决方案1】:

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

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

    可以正常工作

    【讨论】:

      猜你喜欢
      • 2019-07-16
      • 1970-01-01
      • 2013-03-24
      • 2021-09-14
      • 2019-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-24
      相关资源
      最近更新 更多