是否可以使用Azure cosmos mongodb API创建多个“唯一且稀疏”索引

时间:2018-10-08 09:18:50

标签: azure-cosmosdb azure-cosmosdb-mongoapi

我正在尝试在users集合上创建多个稀疏的唯一索引。

用例: 允许用户使用电话或电子邮件注册

问题: Mongo db允许创建此类索引,并且在连接到真实的mongo 3.2实例时,应用程序将按预期运行。但是,随着宇宙的发展,电子邮件成为一个独特的领域,但并不稀疏。

是否有一种方法可以通过mongodb API在cosmos中实现此用例?即无需在每次插入之前通过获取查询来检查唯一性。

尝试: 查阅cosmos的文档并没有太多揭示。他们声称支持mongo 3.2 API,并且在警告中没有提到稀疏索引。使用createIndex创建唯一稀疏索引不会导致错误,而只会创建唯一索引。在不同的字段上创建另一个相似的索引不会产生错误,但是甚至不创建唯一索引。它会创建一个普通索引。

更新:得到了天青支持团队的答复:

  

当前,我们不支持稀疏索引。   您可以执行此操作,即同时使用phone和email属性创建一个复合索引。

我认为综合索引不会对我的用例有所帮助,因为我希望电话和电子邮件在集合中在全球范围内都是唯一的,而不仅仅是它们的组合。

1 个答案:

答案 0 :(得分:-1)

您能否查看以下Stack Overflow论坛主题:Mongodb unique sparse index

执行以下操作:

var UserSchema = new Schema({ // ... email: {type: String, default: null, trim: true, unique: true, sparse: true}, // ... });

通知: 唯一:真实, 稀疏:是