【问题标题】:Mongoose unique index not working猫鼬唯一索引不起作用
【发布时间】:2016-02-24 21:24:35
【问题描述】:

我不希望重复的用户名能够在我的网站上注册。所以,我在猫鼬模型中放置了这样的东西:

var userSchema = new mongoose.Schema({
  username: { type: String, index: { unique: true }}, 
  password: String
});

但是当我像下面这样在控制器中create一个新用户时,它不会抛出异常并创建一个副本。

mongoose.model('User').create({
    username : email,
    password : password
}, function(err, user) {
    if (err) {
        // WHY DOES IT NOT THROW ERROR AND GET HERE?
    }
});

我已经尝试重新启动我的应用程序和 mongod 进程。

【问题讨论】:

  • db.user.getIndexes 返回什么?你用的是什么版本的猫鼬?
  • 如果您没有收到重复的键错误,那么很明显该索引不存在。一个很好的理由是现有数据已经​​包含“重复键”,因此索引创建错误。有关如何识别和删除的讨论,请参阅Remove Duplicates From MongoDB。如果.aggregate() 变得太大(不太可能),那么您可以随时使用“upserts”写入另一个集合。

标签: javascript node.js mongodb mongoose unique-key


【解决方案1】:

我终于找到了解决这个问题的方法

你需要

npm install mongoose-unique-validator

【讨论】:

    猜你喜欢
    • 2011-07-28
    • 2014-07-29
    • 1970-01-01
    • 2015-03-11
    • 2014-11-12
    • 2018-08-29
    • 2016-08-05
    • 2012-06-25
    相关资源
    最近更新 更多