如何在应用启动时在MongoDB中插入初始数据?

时间:2018-12-10 09:04:48

标签: express mongoose

我正在使用快递和猫鼬。我想在服务器启动时在MongoDB中插入一些数据。仅当数据不存在时。 我可以使用任何模块吗?

1 个答案:

答案 0 :(得分:0)

不需要一个外部模块即可执行此操作。您知道想要的数据,知道数据的结构,并且可以轻松地自己完成操作。

只需在外部主文件的app.js 中声明播种逻辑,然后将其导入主app.js文件:

const MyModel = require("./models/my-model");
const express = require("express");

const app = express();

async function mySeeder() {
    const data = await MyModel.find({...}).exec();
    if (data.length !== 0) {
        // Data exists, no need to seed.
        return;
    }
    const seed = new MyModel({...});

    // some other seed logic
    // ...

    await seed.save()
}


mySeeder();
app.listen(3000, () => console.log("Hello World!"));