MongoDb在并非所有文档中的字段上创建唯一索引

时间:2018-08-30 10:12:35

标签: mongodb

我在生产Mongo数据库中添加了一个新字段,需要在其上创建一个唯一索引。如果我尝试创建一个,它将不断抛出“异常:E11000重复键错误索引:”。

我了解没有新字段的文档具有一个null值,这会导致违反唯一性。我该怎么办?

2 个答案:

答案 0 :(得分:1)

您可以使用Sparse Index,它仅包含具有索引字段的文档的条目。示例:

db.collection.createIndex( { "newIndex": 1 }, { sparse: true } )

答案 1 :(得分:0)

您可以创建https://keras.io/losses/,以便唯一约束仅适用于存在该字段的文档。例如

db.collection.createIndex(
   { newField: 1 },
   { unique: true, partialFilterExpression: { newField: { $exists: true } } }
)