【问题标题】:E11000 duplicate key error collection in a UNDEFINED value. How avoid this?E11000 UNDEFINED 值中的重复键错误集合。如何避免这种情况?
【发布时间】:2017-08-30 04:44:48
【问题描述】:

我正在用 node、mongoose 和 express 做一个项目。

我在猫鼬中有这个架构

const userSchema = new Schema({
  local: {
    email: {
      type: String,
      lowercase: true,
      unique: true,
      ....
    },
    password: {
      type: String
    }
  },
  google: {
    googleId: String,
    email: String
  },
  ....
};

因为我有两种护照策略(经典电子邮件、密码和谷歌的本地)。

但是当我使用不同的谷歌帐户创建两个帐户时。控制台向我显示此错误:

{ MongoError: E11000 duplicate key error collection: xxx.users index: local.email_1 dup key: { : null }

什么? “唯一”检测到重复的两个未定义值?

所以。我怎样才能避免这种情况?

谢谢你:)

【问题讨论】:

  • 不。唯一:真,稀疏:真不起作用(同样的 MongoError)。
  • 您是否先删除了现有索引?
  • 是的。我用 robomongo 删除了所有的收藏。然后我把它放在我的模式中。本地:{电子邮件:{类型:字符串,小写:真,唯一:真,稀疏:真,.... xxx.users 索引:local.email_1 复制键:{ : null }
  • 听起来您正在为该字段传递null 的实际值。不使用文档中的 local.email 字段即可。

标签: node.js mongodb express mongoose passport.js


【解决方案1】:

你好,我刚刚解决了错误 你所要做的就是去 Robomongo 并且在你的收藏中我认为是用户打开它你会发现 indexex 删除给你错误的那个它解决了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 2014-08-24
    • 2021-09-19
    • 2021-03-04
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    相关资源
    最近更新 更多