MongoDB – 错误:文档在保存之前必须有_id

我一直在为这个项目苦苦挣扎。 我正在学习一些在某些领域已经过时的教程,比如他们的Jquery版本在某些function上使用了完全不同的格式,我不得不做很多的改变。 但是我认为我是最后一个难以解决的重大问题。 在我的模式variables中,我有_id,用户名和密码types

var UserSchema = new mongoose.Schema({ _id: mongoose.Schema.ObjectId, username: String, password: String }); 

但是当我尝试添加一个新的用户到我的应用程序,而不是得到我应该得到的警报,它popup作为[对象对象],没有被添加到数据库。 然后这个错误在mongo cmd中popup

“错误:文档在保存前必须有_id”。

我试过注释掉_id这一行,我得到正确的消息,但是在我的数据库中仍然没有显示出来。

尝试下面的代码片段我想将_id命名为userId,您也可以不使用它。

 var Schema = mongoose.Schema, ObjectId = Schema.ObjectId; var UserSchema = new Schema({ username: String, password: String }); UserSchema.virtual('userId').get(function(){ return this._id; }); 

_id是由MongoDb自动添加的。

如果你想保持你的数据结构_id,一定要正确初始化:

 var obj = new UserSchema({ "_id": new ObjectID(), "username": "Bill", "password" : "...." }); 
Interesting Posts