2016-07-29 55 views
2

歸來ID從下面的下面的教程的MongoDB - 插入項目

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()以及響應?

回答

4

一個db.save()函數的回調函數有兩個參數,其中,第二個參數會給你插入或更新結果。如果您沒有向_id提供要保存的數據,mongodb將生成id並將其分配給_id的密鑰。

所以,如果你嘗試從結果得到_id,你會發現這樣的事情:ObjectId("50691737d386d8fadbd6b01d"),你可以把它添加到您響應對象。

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

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); 
    });