我正在尝试在users
集合上创建多个稀疏的唯一索引。
用例: 允许用户使用电话或电子邮件注册
问题: Mongo db允许创建此类索引,并且在连接到真实的mongo 3.2实例时,应用程序将按预期运行。但是,随着宇宙的发展,电子邮件成为一个独特的领域,但并不稀疏。
是否有一种方法可以通过mongodb API在cosmos中实现此用例?即无需在每次插入之前通过获取查询来检查唯一性。
尝试:
查阅cosmos的文档并没有太多揭示。他们声称支持mongo 3.2 API,并且在警告中没有提到稀疏索引。使用createIndex
创建唯一稀疏索引不会导致错误,而只会创建唯一索引。在不同的字段上创建另一个相似的索引不会产生错误,但是甚至不创建唯一索引。它会创建一个普通索引。
更新:得到了天青支持团队的答复:
当前,我们不支持稀疏索引。 您可以执行此操作,即同时使用phone和email属性创建一个复合索引。
我认为综合索引不会对我的用例有所帮助,因为我希望电话和电子邮件在集合中在全球范围内都是唯一的,而不仅仅是它们的组合。
答案 0 :(得分:-1)
您能否查看以下Stack Overflow论坛主题:Mongodb unique sparse index
执行以下操作:
var UserSchema = new Schema({
// ...
email: {type: String, default: null, trim: true, unique: true, sparse: true},
// ...
});
通知: 唯一:真实, 稀疏:是