我如何在mongoDB中获取新记录的ID?

时间:2017-04-20 15:16:15

标签: javascript node.js mongodb mongodb-query

MongoDB中有这样的文档结构

{
"_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?在这种情况下,将返回整个文档。

1 个答案:

答案 0 :(得分:0)

每个mongo document都与默认_id相关联,如果未提供,则为ObjectId

如果您想将_id值用于任何其他目的,为什么不拥有自己的_id值,该值在整个集合中必须是唯一的。该值既可以是任何数据类型,也可以是嵌套的。