如何使用猫鼬删除nodejs中的多条记录

How to remove multiple records in nodejs using mongoose

尝试使用 mongoose 从 mongodb 中删除单次调用中的多条记录,但没有 working.Where 我想更改我的 code.Please 帮助以找到解决方案。

在我的代码中,如果我这样使用..它正在工作..

({ p_id: { $in: ['Cs1', 'Cs2', 'Cs3']} }

但如果像下面那样使用

({ p_id: { $in: [records_pids] } } 这不是 working.Because 我正在通过 api 调用获取这个数组值。

MongoDB:

{
 p_id:"Cs1",
 name:"Test",
 value:"Power"
},
{
 p_id:"Cs2",
 name:"Test",
 value:"Power"
},
{
 p_id:"Cs3",
 name:"Test",
 value:"Power"
},
{
 p_id:"Cs4",
 name:"Test",
 value:"Power"
},
{
 p_id:"Cs5",
 name:"Test",
 value:"Power"
}

data.controller.js:

 module.exports.deleteMultipleRecord = (req, res, next) => {
    var collectionMDName = req.query.collectionname;
    var records_pids = req.query.pids; //Array value Cs1, Cs2, Cs3

    var tableMDModal = mongoose.model(collectionMDName);
    tableMDModal.deleteMany({ p_id: { $in: [records_pids] } }, function(err, docs) {
        if (err) {
            console.log('ss' + err);
            return
        } else {
            console.log("Successful deleted selected records");
            res.json({ data: docs, success: true, msg: 'Successful deleted selected records.', cname: collectionMDName });
        }

    })
}
module.exports.deleteMultipleRecord = (req, res, next) => {
    var collectionMDName = req.query.collectionname;
    var records_pids = req.query.pids; //Array value CS1, CS2, CS3

    var tableMDModal = mongoose.model(collectionMDName);
    tableMDModal.deleteMany({ p_id: { $in: records_pids } }, function(err, docs) {
        if (err) {
            console.log('ss' + err);
            return
        } else {
            console.log("Successful deleted selected records");
            res.json({ data: docs, success: true, msg: 'Successful deleted selected records.', cname: collectionMDName });
        }

    })
}

错误是语义错误,而不是搜索值 $in: [CS1, CS2, CS3],搜索是 [[CS1, CS2, CS3]] 此外,请查看 https://mongoosejs.com/docs/models.html 以定义模型。

MongoDB Enterprise Cluster0-shard-0:PRIMARY> use new
switched to db new
MongoDB Enterprise Cluster0-shard-0:PRIMARY> use neo
switched to db neo
MongoDB Enterprise Cluster0-shard-0:PRIMARY> db.coll.insertMany([{  p_id:"Cs1",  name:"Test",  value:"Power" }, {  p_id:"Cs2",  name:"Test",  value:"Power" }, {  p_id:"Cs3",  name:"Test",  value:"Power" }, {  p_id:"Cs4",  name:"Test",  value:"Power" }, {  p_id:"Cs5",  name:"Test",  value:"Power" }])
{
    "acknowledged" : true,
    "insertedIds" : [
        ObjectId("5ecb90001a40be1d77da2aa8"),
        ObjectId("5ecb90001a40be1d77da2aa9"),
        ObjectId("5ecb90001a40be1d77da2aaa"),
        ObjectId("5ecb90001a40be1d77da2aab"),
        ObjectId("5ecb90001a40be1d77da2aac")
    ]
}
MongoDB Enterprise Cluster0-shard-0:PRIMARY> const records_id =["Cs1","Cs2","Cs3"]
MongoDB Enterprise Cluster0-shard-0:PRIMARY> db.coll.deleteMany({p_id:{$in:records_id}})
{ "acknowledged" : true, "deletedCount" : 3 }