Node.js / Mongodb插入回调未定义的回调

时间:2016-01-01 06:43:42

标签: node.js mongodb

当我运行下面的简单代码插入新文档时:

collectionUsers.insert({'name':'john'},function(err,records){
    if (err) throw err;
    console.log("Id of new document added =  " + records[0]._id);
});

我收到以下错误:

catch(err) { process.nextTick(function() { throw err}); }
                                             ^
TypeError: Cannot read property '_id' of undefined

回调函数不返回数组吗?我只是想获取新文档的id并将其保存在变量中以备将来使用。谢谢你的帮助。

或者,如果我使用insertOne,我得到这个输出: 添加新文件的ID = {“ok”:1,“n”:1}

但我想使用插入...

2 个答案:

答案 0 :(得分:7)

ops中有records个对象,其中包含插入的doc / docs。

尝试:

collectionUsers.insert({'name':'john'},function(err,records){
   // You can explore more here
   console.log("record contents",JSON.stringify(records,null,4));
   // Desired output
   console.log("Id of new document added =  " + records.ops[0]._id);
});

答案 1 :(得分:0)

非常感谢user2285490和robertklep。我终于意识到记录中的ops对象是什么。这是api文档供将来参考:

http://mongodb.github.io/node-mongodb-native/2.0/api/Collection.html#~insertWriteOpCallback