0

我在 mongodb 的数据库中有一个“用户”集合。我将使用分片。

除了标准的 _id 之外,还有 3 个其他字段需要索引和唯一:用户名、电子邮件和帐号。不一定每个用户文档都存在所有这 3 个字段,在某些情况下不会存在。

我希望对这些字段进行索引,因为这些字段之一会经常查找用户。我希望这些字段是唯一的,因为这是一项要求,我宁愿不在客户端处理这个逻辑。

我知道 mongodb 确实有局限性,就像任何其他数据库一样,但我希望有一个解决方案,因为这是 Web 应用程序相当常见的设置。

这种情况有一个优雅的解决方案吗?

不确定这个问题是否重要(因为问题与数据库结构有关),但我使用的是官方的 mongodb C# 驱动程序。

4

1 回答 1

3

Mongodb官方文档说,分片集合必须只有一个唯一索引,并且要求唯一字段存在。但它也表示当且仅当分片键是其属性的前缀时,您还可以选择拥有其他唯一索引。所以你可以试试这个,但要知道,唯一的键必须始终存在。

我不了解您的业务逻辑,其中不存在有关用户的信息。在这种情况下,您可以_id手动分片并执行唯一性检查。

于 2011-03-07T05:43:30.717 回答