Mongoose deleteMany 在 nodejs 上使用 _id

Posted

技术标签:

【中文标题】Mongoose deleteMany 在 nodejs 上使用 _id【英文标题】:Mongoose deleteMany using _id on nodejs 【发布时间】:2022-01-20 16:47:58 【问题描述】:

我有一个数组 ['123','456', '789'] 的 id。我想在 mongodb 中删除所有这些数组

我如何使用它:

ScheduleModel.deleteOne( _id: ['123','456', '789'] );

这不起作用,因为这不是对象 ID

我需要什么:

ScheduleModel.deleteOne( _id: [ObjectId('123'), ObjectId('456'), ObjectId('789')] );

如何在数组数据中添加对象 ID。任何如何解决这个问题。我需要一个解决方案。

【问题讨论】:

这能回答你的问题吗? Mongoose - remove multiple documents in one function call 【参考方案1】:

这与ObjectId 无关。您使用了错误的语法。您必须使用$in 声明

ScheduleModel.deleteMany( id:  $in: ['123','456','789']  );

【讨论】:

【参考方案2】:

使用正确语法的deleteMany。当有很多objectId时使用$in

试试这个:

var deleteCondition = 
            _id : 
                   //In Array you can pass your objectId
                    $in : ['123','456','789']
                 
                //You can pass other conditions
        
    
        //deleteMany
        ScheduleModel.deleteMany(deleteCondition, function (err, res) 
                            if (res) console.log(res)
                        )

【讨论】:

以上是关于Mongoose deleteMany 在 nodejs 上使用 _id的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 deleteMany() 从 mongoDB 中删除所有文档?

带有 ID 列表的 Prisma deleteMany

在 mongoose 中填充嵌套数组 - Node.js

Mongoose - 查找具有最大计数的文档

如何使用 Mongoose 在 AngularJS 中创建 PUT 函数

如何删除猫鼬中的Many