【发布时间】:2016-02-07 18:00:42
【问题描述】:
是否可以制作复合索引,其中一个字段具有固定值?
假设我想避免用户为不同的帐户使用相同的电子邮件,但仅用于普通用户帐户,并且我希望允许管理员在任意数量的地方使用邮件,甚至有一个常规的使用同一电子邮件的用户帐户和管理帐户
User.index({ username: 1, email: 1 }, { unique: true })
没有用,因为它不允许管理员重复使用电子邮件。有没有可能做类似的事情?
User.index({ role: "regular_user", username 1, email: 1}, { unique: true });
【问题讨论】:
-
我发布了一个关于索引的答案,这可以帮助您确定创建复合索引是否适合您,其中一个字段具有固定值。 stackoverflow.com/questions/33545339/…
-
好答案。实际上,就我而言,我正在改进 mongoose (github.com/briankircho/mongoose-schema-extend) 的模式继承包装器,并且我必须将所有唯一键更改为鉴别器/键唯一索引,但仅限于那些定义此类字段的鉴别器值作为独一无二的。上面的例子是我能找到的最容易解释的例子。
-
你的结果如何?
-
根据您的回答,我有一个想法。明天我会通知你(并接受你的回答)
-
我接受了您的回答,因为它对我提出的问题很有用,并且可能对其他人有用。无论如何,我仍然坚持这一点:-p