Home > Enterprise >  What is the proper way to delete all elements from an array?
What is the proper way to delete all elements from an array?

Time:02-16

I am having trouble in deleting all elements from an array in mongodb. This is my schema:

const userSchema=mongoose.Schema({
    name: String,
    email: String,
    password: String,
    blog: [{
        date: Date,
        post: String
    }],
    week: [{
        weekday: String,
        tasks:[String]
    }],
    todo: [String]
});

const User= mongoose.model("User", userSchema);

I want to delete all data from todo but it is not working. Here is the code for that:

app.post("/deletelist",(req,res) =>{
    console.log(req.body);
    const user = req.body.userid;
    console.log(user);

    // User.find({_id: user}, async function(err, foundUser){
    //     if(err){
    //         console.log(err);
    //     } else{
    //         foundUser.updateOne({},{ $set : {"todo": [] }} , {multi:true});
    //         // await foundUser.save();
    //         res.send("ToDo Deleted");
    //     }
    // });

    User.updateOne({_id:user},{ $set : {"todo": []}}, {multi:true});
    res.send("ToDo Deleted");

});

I am getting user from the frontend. The part that is commented and the other one(User.updateOne) both are not working. I'll be glad if anyone can help

CodePudding user response:

Updated

You cannot use multi-option in the updateOne method remove it and it will work

Example

User.updateOne({_id:user},{ $set : {"todo": []}})

CodePudding user response:

this will remove all the elements even the key if you want to remove the elements only try @Abdelrhman answer

User.updateOne({_id:user},{$unset:{todo:""}})
  • Related