1

I am learning Node js and Mongoose. This is my code with Promise all, for some reason, it doesn't insert only second value:

  {
        name: "test bulk 3",
        email: "testb3@test.ru",
        zipcode: 56353
    },

I tested to replace items, but whatever item in second position, it is not inserted. Could you help me to find reason?

    const mongoose = require("mongoose"),
    Subscribe = require("./models/subscriber");
const subscriber = require("./models/subscriber");

mongoose.connect(
    "mongodb://localhost:27017/test",
    {useNewUrlParser : true}
);
mongoose.connection;

var contacts = [
    {
        name: "test bulk 1",
        email: "testb1@test.ru",
        zipcode: 54635
    },

    

    {
        name: "test bulk 3",
        email: "testb3@test.ru",
        zipcode: 56353
    },

    {
        name: "test bulk 4",
        email: "testb4@test.ru",
        zipcode: 75644
    },

    {
        name: "test bulk 5",
        email: "testb5@test.ru",
        zipcode: 98754
    },

    {
        name: "test bulk 222",
        email: "testb2222@test.ru",
        zipcode: 24345
    }
];

subscriber.deleteMany()
.exec()
.then(() => {
    console.log("Subscriber table is empty!");
});

var commands = [];

contacts.forEach((c) =>{
    commands.push(subscriber.create({
        name: c.name,
        email: c.email
    }));
});
console.log(commands);
Promise.all(commands)
.then(r => {
    console.log(JSON.stringify(r));
    mongoose.connection.close();
})
.catch(error => {
    console.log(`ERROR: ${error}`);
});

0 Answers0