使用邮递员投递多个文档不起作用

时间:2019-01-21 13:21:02

标签: node.js mongodb postman

我正在尝试使用邮递员发布数据,但是当我尝试使用多个文档时,它在mongodb中显示为空白。但是,当我尝试插入单个文档时,它将保存数据。请纠正我,我是新来的

server.js

app.post('/bloodinventory', function(req, res) {
    var bloodinventory= new Bloodinventories(); 
    bloodinventory.blood_group = req.body.blood_group;  
    bloodinventory.blood_category = req.body.blood_category; 
    bloodinventory.num_stock = req.body.num_stock; 
    bloodinventory.save(function(err) {
        if (err) {
            res.json({ success: false, message: 'Blood Donation already exists!' }); 
        } else {
            res.json({ success: true, message: 'Blood Donation Created!' });
        }
    });
});

然后在邮递员中,我尝试插入以下数据:

{
"bloodinventories":[
        {
            "blood_group":"A_positive",
            "blood_category":"whole blood",
            "num_stock":11
        },
        {
            "blood_group":"A_negative",
            "blood_category":"platelet",
            "num_stock":9
        }
    ]
}

然后我的mongodb中什么也没显示,结果:

_id:5c45c6a495788ec2c47f8c8b
__v:0

1 个答案:

答案 0 :(得分:0)

在POST请求中提供单个文档时

示例:-

{
    "blood_group":"A_positive",
    "blood_category":"whole blood",
    "num_stock":11
 }

它很容易获得 request.body.blood_group request.body.blood_category 并显示在

但是当您在POST请求中以数组形式传递Mutliple文档

{
"bloodinventories":[
        {
            "blood_group":"A_positive",
            "blood_category":"whole blood",
            "num_stock":11
        },
        {
            "blood_group":"A_negative",
            "blood_category":"platelet",
            "num_stock":9
        }
    ]
}

现在,您的请求正在获取一个数组,因此您的请求正文包含血液清单。您可以通过 request.body.bloodinventories 进行访问 将此const应用于其上的循环并插入所有文档。

或者简单地使API像这样,并始终在插入的每个请求中发送数组。

Bloodinventories.insertMany(request.body.bloodinventories).then((result) => { 
  //Success Message
}).catch(err => {
 // Error Message
});

它可能对您有帮助...