【问题标题】:"errmsg": "E11000 duplicate key error collection: reduxpress.users index: address.email_1 dup key: { : null }""errmsg": "E11000 重复键错误收集:reduxpress.users 索引:address.email_1 重复键:{ : null }"
【发布时间】:2016-08-17 02:36:35
【问题描述】:
{
  "status": "Error",
  "typeof": "object",
  "result": {
    "code": 11000,
    "index": 0,
    "errmsg": "E11000 duplicate key error collection: reduxpress.users index: address.email_1 dup key: { : null }",
    "op": {
      "mobile": "(950) 874-8901 x8729",
      "_id": "571b6e353731775404ac05b9",
      "points": 0,
      "created": "2016-04-23T12:44:37.111Z",
      "roles": "customer",
      "profileImageURL": "default.png",
      "email": "aditya24@gmail.com",
      "password": "VF1WQZ72HEyS0a6",
      "name": "Junior94",
      "__v": 0
    }
  }
}

//用户架构 '使用严格';

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    crypto = require('crypto'),
    validator = require('validator');
// generatePassword = require('generate-password'),
// owasp = require('owasp-password-strength-test');

var validateLocalStrategyProperty = function(property) {
    return (property.length);
};

var validateLocalStrategyEmail = function(email) {
    return (validator.isEmail(email));
};

var UserSchema = new Schema({
    name: {
        type: String,
        trim: true,
        default: '',
        validate: [validateLocalStrategyProperty,
            'Please fill in your first name'
        ]
    },
    password: {
        type: String,
        default: ''
    },
    email: {
        type: String,
        unique: true,
        lowercase: true,
        trim: true,
        default: '',
        match: /.+\@.+\..+/,
        validate: [validateLocalStrategyEmail,
            'Please fill a valid email address'
        ]
    },
    mobile: {
        type: String,
        // unique: true,
        required: [true, 'User phone is required'],
        trim: true
    },
    profileImageURL: {
        type: String,
        default: 'default.png'
    },
    roles: {

        type: String,
        enum: ['user', 'admin', 'shop manager', 'customer',
            'operator'
        ],

        default: ['customer'],
        required: 'Please provide at least one role'
    },
    lastLogout: {
        type: Date
    },
    created: {
        type: Date,
        default: Date.now
    },
    resetPasswordToken: {
        type: String
    },
    resetPasswordExpires: {
        type: Date
    },
    points: {
        type: Number,
        default: 0
    }
});

module.exports = mongoose.model('User',UserSchema);

我正在尝试使用 faker 包保存用户生成数据,但我收到此错误,我在数据库中没有任何重复的电子邮件。你能告诉我错误是什么吗?我尝试了不同的东西,但没有得到任何结果

【问题讨论】:

标签: javascript node.js mongodb express mongoose


【解决方案1】:

您的 json 文档的 email 归档超过 null 值,email 归档也是通知索引归档,您还指定此字段 unique 并抛出异常

首先像这样删除电子邮件字段的索引

db.users.dropIndex( { "email": 1 } )

如果您需要归档电子邮件的索引,并且归档的电子邮件必须有运动才能变为空

然后像这样创建sparse index

db.users.createIndex( { "email": 1 }, { sparse: true } )

这里不仅仅是sparse index 的知识:https://docs.mongodb.org/manual/core/index-sparse/

【讨论】:

    猜你喜欢
    • 2019-06-17
    • 2018-07-21
    • 2020-12-08
    • 2021-10-25
    • 2021-11-04
    • 2019-07-11
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    相关资源
    最近更新 更多