从以下教程
开始https://codeforgeek.com/2015/08/restful-api-node-mongodb/
我有以下内容在我的数据库中创建订单
exports.createOrder = function(req,res){
var db = new mongoOp();
var response = {};
db.userId = req.body.userId;
db.userEmail = req.body.userEmail;
db.userOrder = req.body.userOrder;
db.save(function(err){
if(err)
{
response = {"error" : true,"message" : "Error adding data"};
}
else
{
response = {"error" : false,"message" : "Data added"};
}
res.json(response);
});
}
如何从DB.save()返回插入项的id以及响应?
答案 0 :(得分:4)
db.save()
函数的回调函数有两个参数,第二个参数可以为您提供插入或更新的结果。如果您未向_id
提供要保存的数据, mongodb 将生成 ID 并将其分配给_id
的密钥。
因此,如果您尝试从结果获取_id
,您会发现类似这样的内容:ObjectId("50691737d386d8fadbd6b01d")
,您可以将响应>添加给您strong>对象。
db.save(function(err, result){
if(err) {
response = { error: true, message: "Error adding data" };
} else {
response = { error: false, message: "Data added", id: result._id };
}
res.json(response);
});
希望答案可以帮到你。
答案 1 :(得分:1)
save函数返回一个WriteResult对象,该对象包含添加对象的id作为属性。查看docs,因此请尝试按以下方式记录,看看你得到了什么。
db.save(function(err, result){
if(err)
{
response = {"error" : true,"message" : "Error adding data"};
}
else
{
console.log(result._id);
response = {"error" : false,"message" : "Data added"};
}
res.json(response);
});