Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在MongoDB中获取新创建的对象ID_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

Javascript 在MongoDB中获取新创建的对象ID

Javascript 在MongoDB中获取新创建的对象ID,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我有以下MongoDB查询,我正在使用MongoDB node.js驱动程序进行连接: db.collection('employee').insertOne(employeeObj).then(result => { console.log(result); res.send(result); }).catch(function (err) { console.log("ERROR: ", err); }); 从上面可以看出,我希望获得新创建的员工对象的Id,但

我有以下MongoDB查询,我正在使用MongoDB node.js驱动程序进行连接:

db.collection('employee').insertOne(employeeObj).then(result => {
    console.log(result);
    res.send(result);
}).catch(function (err) {
    console.log("ERROR: ", err);
});
从上面可以看出,我希望获得新创建的员工对象的Id,但当我控制台记录结果时,我得到:

Object { n: 1, ok: 1 }

使用上述查询,我如何也包括刚在返回结果中创建的新
\u id

一旦
\u id
字段添加到集合中,它就会被添加到
employeeObj

这是来自:

insertOne(文档、选项、回调)

插入单个文档 进入MongoDB。如果传入的文档不包含_id字段,则 将被添加到驾驶员丢失的每个文档中, 修改文档。可以通过设置 forceServerObjectId标志

只需将代码更改为:

db.collection('employee').insertOne(employee).then(result => {
    console.log(employee._id);
    res.send({employee, result});
}).catch(function (err) {
    console.log("ERROR: ", err);
});

可能也会有帮助。

我想您使用的是mongoose软件包。如果要为文档创建自定义\u id,可以使用

var newId = new mongoose.mongo.ObjectId('56cb91bdc3464f14678934ca');
并将其与employee对象一起传递

更多信息。

应该包含一个
insertedId
属性,该属性是驱动程序为插入操作生成的
ObjectId


尝试记录
result.insertedId
以检查id,并且您应该在
ops
属性中有插入的对象。

您可以记录
console.log(result.ops[0])