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

Posted

技术标签:

【中文标题】"$pull" 不会删除 mongoose 数组的嵌入文档【英文标题】:"$pull" doesn't delete the embedded documents of mongoose array 【发布时间】: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 
);

【问题讨论】:

【参考方案1】:

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

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

可以正常工作

【讨论】:

以上是关于"$pull" 不会删除 mongoose 数组的嵌入文档的主要内容,如果未能解决你的问题,请参考以下文章

git 不小心pull了其他分支怎么办

git 添加和删除 global 的 remote.origin.url

Java企业微信开发_Exception_01_"errcode":60011,"errmsg":"no privilege to access/mo

在子目录上执行git pull(递归)

git.exe pull --progress -v --no-rebase "origin" master

Docker pull下载出现 error pulling image configuration: