我在生产Mongo数据库中添加了一个新字段,需要在其上创建一个唯一索引。如果我尝试创建一个,它将不断抛出“异常:E11000重复键错误索引:”。
我了解没有新字段的文档具有一个null
值,这会导致违反唯一性。我该怎么办?
答案 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 } } }
)