Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用NodeJS通过POST请求将多个文档/记录插入MongoDB_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 尝试使用NodeJS通过POST请求将多个文档/记录插入MongoDB

Javascript 尝试使用NodeJS通过POST请求将多个文档/记录插入MongoDB,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我目前正在使用MongoDB和NodeJS构建一个API,我有以下代码块来执行POST请求: // '/v1/restaurant/add' - Create api.post('/add', (req, res) => { let newRestaurant = new Restaurant(); newRestaurant.name = req.body.name; newRestaurant.save(err => { if (err)

我目前正在使用MongoDB和NodeJS构建一个API,我有以下代码块来执行POST请求:

// '/v1/restaurant/add' - Create
  api.post('/add', (req, res) => {
    let newRestaurant = new Restaurant();
    newRestaurant.name = req.body.name;

    newRestaurant.save(err => {
      if (err) {
        res.send(err);
      }
      res.json({ message: 'Restaurant saved successfully' });
    });
  });
我想做的是批量发布(即一次将多个文档/记录插入我的MongoDB)。我将如何修改代码来实现这一点


很抱歉,但我对JavaScript/NodeJS非常陌生。

使用Mongoose有两种方法

  • Model.create()。如果您想插入大量记录,这将对性能造成影响,但您可以从Mongoose为每个记录调用
    save()
    方法中获益,这意味着您的
    pre
    post
    中间件功能将被触发。您可以阅读更多有关该方法的信息

  • Model.insertMany()
    -它还接受要插入的对象数组,但在单个数据库操作中执行此操作。您可以获得更好的性能,但代价是,
    save()
    函数不会对任何要插入的项运行(在提交查询之前仍将运行验证)。您可以阅读有关
    insertMany()
    的更多信息

  • 就我个人而言,如果我必须一次插入少于50个项目,并且我的模型比较复杂,并且附带了
    pre/post save
    中间件功能,我会使用
    create()

    如果我的模型不复杂,并且一次必须定期插入50多个项目,我会使用
    insertMany()