2017-04-20 60 views
0

有MongoDB中我如何獲得mongoDB中新記錄的ID?

{ 
"_id" : ObjectId("58f7d556aa52ce456672a67e"), 
"created" : ISODate("2017-04-19T21:23:34.315Z"), 
"context_task" : [ 
    { 
     "task" : "some text ", 
     "status" : false, 
     "_id" : ObjectId("58f7d559aa52ce456672a67f") 
    } 
], 
"head" : { 
    "userID" : "58f48037fc894e19a3f7b81b", 
    "head_task" : "test record " 
}, 
"__v" : 0 
} 

我添加使用下面的查詢數據的context_task.task這樣的文檔結構:

task.findOneAndUpdate({"_id": req.body.id_project}, 
      {$push: {'context_task': {'task': req.body.input_task,'status': false}}},{new: true}, 
      function (err, doc) { 
       if (err) return next(err); 
       var body = req.body.id_project+","+req.body.input_task; 
       console.log(doc); 
       res.status(200).send(body); 
      }); 

告訴我,我怎麼能得到的的context_task._id插入後新記錄?在這種情況下,整個文檔被返回。

+0

如果當前返回整個文檔,你可以做returnval.id剛剛拿到ID – ControlAltDel

+1

如何doc.context_task [doc.context_task.length-1] ._ ID –

+0

@RatanKumar,非常感謝,它的工作原理對我來說,這就是我需要的! –

回答

0

每個mongo document與默認的_id相關聯,如果未提供,將會是ObjectId

如果你想使用_id值用於任何其他目的,你爲什麼不擁有自己的_id值,必須是整個集合唯一的。該值可以是任何數據類型,也可以是嵌套的。

相關問題