首页 > 解决方案 > mongoDB mongoose 唯一索引与唯一索引

问题描述

我有这样的架构:

var UserSchema = new Schema({
    username : {
        type: String,
        required: true,
        unique : true,
        index: { unique: true },
        trim: true
    },
    password : {
        type: String,
        required: true
    }
})

在保存到数据库时,这给了我这样的文档:

{
    "_id": {
        "$oid": "5b43827de210a92130b99ccf"
    },
    "username": "username1",
    "password": "password1",
    "__v": 0
}

每个文档的 id 都会发生变化。在这种情况下,即使我删除了 index: { unique: true } 所以这是必要的吗?或者只是unique : true用户名就足够了吗?

标签: mongodbexpressmongoose

解决方案


你可以写两种方式,两者都是等价的,所以你不需要同时写

name: { type: String, unique: true }

或者

name: { type: String, index: { unique: true } }

推荐阅读