2017-04-20 27 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值,必须是整个集合唯一的。该值可以是任何数据类型,也可以是嵌套的。

相关问题