mongoose 如何在mongoDB中使用node js一次创建多个新文档

wfypjpf4  于 2022-11-13  发布在  Go
关注(0)|答案(1)|浏览(173)

我想在mongoDB中添加一些数据。

const data = [{user : "1",password: "1"},
{user : "2",password: "2"},
{user : "3",password: "3"},
// upto 1000
{user : "1000",password: "1000"},]

for(let x=0; x<data; x++){
const user = new User(data[x])
await user.save()
}

它可以工作,但是将数据添加到MongoDB数据库需要超过5秒的时间。我知道这是因为for循环的缘故,所以我想找到一种方法,通过这种方法,所有数据都可以一次性添加到数据库中,就像这样

const user = new User(data)

请帮助我找到解决方案,这是我架构

const UserDetails = new mongoose.Schema({
    user: String,
    password : String,
    hobbies : [{game : String, dance : String}]
    }]
});
nkoocmlb

nkoocmlb1#

这很简单!使用Map,它比for循环更快。请稍后再研究。

const map1 = performance.now()
const result = await Promise.all(data.map(async e => {
    await mapModel.create({ //replace 'mapModel' with your schema name
        user: e.user,
        password: e.password
    })
}));
const map2 = performance.now()

res.send({
    status: "completed",
    map_time: map2 - map1,
})

上面的代码只需要18ms ;)

相关问题