【发布时间】:2021-12-27 04:55:26
【问题描述】:
我们正在使用mongo存储一些SASS业务数据,集合名称如:“company_id_user”,它们是动态创建的,我们希望在集合创建后创建一些唯一索引,我没有找到解决方法这个。
如果我们在生成文档的时候不能创建唯一索引,那么文档可能在并发的时候已经生成了非唯一数据,我们不能再创建了。
我们不想从代码中解决它,而是从 mongodb self.
【问题讨论】:
我们正在使用mongo存储一些SASS业务数据,集合名称如:“company_id_user”,它们是动态创建的,我们希望在集合创建后创建一些唯一索引,我没有找到解决方法这个。
如果我们在生成文档的时候不能创建唯一索引,那么文档可能在并发的时候已经生成了非唯一数据,我们不能再创建了。
我们不想从代码中解决它,而是从 mongodb self.
【问题讨论】:
您可以在创建集合之前创建索引。例如,我没有名为 users 的集合,我正在 email 字段上创建唯一索引。
来自mongo shell 或mongosh:
db.users.createIndex( { email: 1 }, { unique: true } )
这将创建空集合(名称为users)以及email 字段上的唯一索引。而且,您可以使用以下命令验证索引创建:
db.users.getIndexes()
另外,请参阅有关 Indexes 的 MongoDB 手册。
【讨论】: