Home > Back-end >  Adding multiple items to mongodb
Adding multiple items to mongodb

Time:11-26

I have this schema with

const userSchema = new mongoose.Schema(
{
    skills: [{ name: { type: String, unique: true }, level: { type: Number } }],

and I am trying, after getting an array of objects from the client, to add all of them at once under a user in MongoDB

my old implementation when it was only an array is this one below. I have no idea how to go about it now tho. Could anyone help me?

const { email } = session;
const { skill } = req.body;
if (req.method === 'POST') {
    try {
        const user = await User.findOne({ email });

        const updatedUser = await User.findOneAndUpdate(
            { email },
            { skills: [...user.skills, { name: skill }] }
        );

CodePudding user response:

const { email } = session;
// object from the client
const { skills } = req.body;
if (req.method === 'POST') {
    try {

        const updatedUser = await User.findOneAndUpdate(
            { email },
            { $set: {skills} }
        );

the best is getting the array correctly formatted from front-end, if not use a map before call findOneAndUpdate

  • Related