Node.js Mongoose将新保存的对象id设置为1

Node.js Mongoose将新保存的对象id设置为1,node.js,mongoose,Node.js,Mongoose,我用的是猫鼬的最新版本 var question = new CodingQuestion(reqJSON); question.save(function(err) { if (err) console.log(err); else{ var questionId = question.id; console.log("successfully added question with id", questionId); } }); 可以

我用的是猫鼬的最新版本

var question = new CodingQuestion(reqJSON);
question.save(function(err) {
    if (err) console.log(err);
    else{
        var questionId = question.id;
        console.log("successfully added question with id", questionId);
    }
});
可以成功保存新对象。问题是,当我尝试获取新添加的对象Id时,我获取的值总是偏离1。例如,控制台中记录的值为“5356b2162f8a71c00ae48783”,但数据库中的实际值为“5356b2162f8a71c00ae48784”。
知道是什么导致了这个问题吗?

我想你没有得到保存文档的ID。通过
save
函数传递的匿名函数包含两个参数,
error
saved\u document

请尝试以下操作:

question.save(function(err, savedQuestion) {
    if (err) console.log(err);
    else{
        var questionId = savedQuestion._id;
        console.log("successfully added question with id", questionId);
    }
});

六羟甲基三聚氰胺六甲醚。。。MongoDB的id有'\u id'键,而不仅仅是'id'。您似乎收到了带有reqJSON的“id”,这样question.id就不会返回undefined。保存问题后,尝试使用util.inspect检查问题。或者更好的问题。请忽略不必要的猫鼬的东西。谢谢回复。这是我以前试过的。两种方法产生相同的结果。我得到的id值总是比数据库中的实际值小(1)。请尝试
console.log(savedQuestion)
,而不仅仅是
id
属性。mongodb的
\u ID
应该在那里。我的终端中的mongo可能有问题。若我从数据库中检索并显示数据,我将获得与登录到控制台相同的id。唯一的问题是mongo的显示方式不同。id和_id都可以工作。甚至我的旧代码也能工作。谢谢你的帮助。:)