MongoDB - 错误:文档在保存之前必须有一个 _id

新手上路,请多包涵

我一直在为这个项目苦苦挣扎。我正在关注一个在某些领域已经过时的教程,例如他们的 Jquery 版本对某些功能使用了完全不同的格式,我不得不做很多改变。但我想我要解决最后一个我似乎无法解决的主要问题。在我的 Schema 变量中,我有 _id、用户名和密码类型

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

但是当我尝试向我的应用程序添加一个新用户时,它没有得到我应该得到的警报,而是作为 [object Object] 弹出,并且没有任何内容添加到数据库中。然后在mongo cmd中弹出这个错误

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

我尝试注释掉 _id 行,我得到了正确的消息,但我的数据库中仍然没有显示任何内容。

原文由 Matt Lee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 274
1 个回答

它非常简单:

  1. 如果您已在模式中显式声明 _id 字段,则必须显式初始化它
  2. 如果你没有在模式中声明它,MongoDB 将声明并初始化它。

您不能做的是将它放在模式中但不对其进行初始化。它会抛出你正在谈论的错误

原文由 dasfdsa 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题