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" : "...." });