Node.js 猫鼬:跨多个领域的唯一性
以下是我的模式:Node.js 猫鼬:跨多个领域的唯一性,node.js,mongodb,validation,express,mongoose,Node.js,Mongodb,Validation,Express,Mongoose,以下是我的模式: var user = new Schema({ // other fields... email_1: String, email_2: String }); 是否有办法确保电子邮件1和电子邮件2的唯一性?也就是说,如果某个电子邮件被保存为某个用户的电子邮件1,则其他任何人都无法将其保存为电子邮件1或电子邮件2 我尝试了复合索引,但它只检查电子邮件对,我需要所有电子邮件都是唯一的。使用数组作为索引的事实,并将电子邮件存储为“有序对”[email1,email2]
var user = new Schema({
// other fields...
email_1: String,
email_2: String
});
是否有办法确保电子邮件1和电子邮件2的唯一性?也就是说,如果某个电子邮件被保存为某个用户的电子邮件1,则其他任何人都无法将其保存为电子邮件1或电子邮件2
我尝试了复合索引,但它只检查电子邮件对,我需要所有电子邮件都是唯一的。使用数组作为索引的事实,并将电子邮件存储为“有序对”
[email1,email2]
:
> db.emails.ensureIndex({ "emails" : 1 }, { "unique" : true })
> db.emails.insert({ "emails" : ["me@wdb.com", "metoo@wdb.com"] })
> db.emails.insert({ "emails" : ["you@eagor.com", "me@wdb.com"] }) // MongoDB says NO!
> db.emails.insert({ "emails" : ["metoo@wdb.com", "myself@wdb.com"] }) // MongoDB says NO
非常感谢。在新数据库上运行良好,但在旧数据库上不起作用。我是否需要以某种方式重新确保/重置/删除数据库上的索引?