简体   繁体   中英

How can i add, update, delete nested objects in mongoDB

I'm new to mongoDB and backend stuffs. I've a nested MongoDB model schema. I need to update, delete and add in that nested objects/array. How can I do that ?

How can I delete/add/update item from columns array and resume array.

const userSchema = new Schema({
    name: {
        type: String,
        required: true,
    },
    email: {
        type: String,
        required: true,
    },
    password: {
        type: String,
    },
    columns: [
        {
            title: {
                type: String,
                required: true,
            },
            resumes: [
                {
                    name: {
                        type: String,
                        required: true,
                    },
                    resume: {
                        type: String,
                        required: true,
                    },
                },
            ],
        },
    ],
});

const Users = mongoose.model('Users', userSchema);

This is my schema

To add new item to the columns array:

let newData = {title: "New Title", resumes: []}    
let userData = await User.findByIdAndUpdate(userID, {
  $push: {
    columns: newData,
  },
});

To add new item to the resumes array inside columns:

let newData = {name: "New Name", resume: "New Resume"}
let userData = await User.updateOne(
  {
    _id: mongoose.Types.ObjectId("60f54774761788cd80f56xxx"),
    "columns._id": mongoose.Types.ObjectId("60f54774761788cd80f56xxx"),
  },
  {
    $push: { "columns.$.resumes": newData },
  }
);

Similarly, you can use $pull operator to remove an object from the array, and $(update) to update the element inside the array

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM