我正在尝试在users
集合上创建多个唯一索引,这些索引也很稀疏。
用例:允许用户使用电话或电子邮件注册
问题:Mongo db 允许创建此类索引,并且当连接到真正的 mongo 3.2 实例时,应用程序会按预期运行。然而,在 cosmos 中,电子邮件成为一个独特的领域,但并不稀疏。
有没有办法通过 mongodb API 用 cosmos 实现这个用例?即,无需在每次插入之前通过 fetch 查询检查唯一性。
尝试:浏览 cosmos 的文档并没有透露太多信息。他们声称支持 mongo 3.2 API,并且警告中没有提到稀疏索引。创建唯一稀疏索引createIndex
不会导致错误,而只会创建唯一索引。在不同的字段上创建另一个类似的索引不会出错,但甚至不会创建唯一索引。它创建一个正常的索引。
更新:得到了 azure 支持团队的回复:
目前我们不支持稀疏索引。您可以这样做,即使用电话和电子邮件属性创建一个复合索引。
我认为复合索引不会对我的用例有所帮助,因为我希望电话和电子邮件在集合中都是全球唯一的,而不仅仅是它们的组合。