我想存储一个电子邮件字符串和密码,其中只有一个需要是唯一的。因此,有人可以使用相同的电子邮件地址和2个不同的密码(或100个),并拥有100个帐户,但所有密码必须不同,但是,只要他们的电子邮件地址不是,有人应该仍然能够拥有与其他人相同的密码。相同。
我似乎无法在任何mongoose模式文档中找到任何此类事情的示例。
使用adreas建议我有:
var userSchema = new Schema({
email: {
type: String,
required: true,
index: true
},
password: {
type: String,
required: true,
index: true
}
});
//either email or password must be unique if the other is not
userSchema.index({
"email": 1,
"password": 1
}, {
unique: true
});
module.exports = mongoose.model('User', userSchema);
它仍然允许我使用相同的电子邮件通过相同的电子邮件。
答案 0 :(得分:0)
Compound index应该是您所需要的。
User.index({ email: 1, hashedPassword: 1 }, { unique: true });
这样实现它可能会带来安全风险,因为您必须在两个帐户上使用相同的盐。只是不要存储纯文本。