有时会使用唯一索引插入重复数据
Duplicate data is sometimes inserted with unique index
我在一个集合上确实有一个带有 partialFilterExpression
的唯一索引,但有时会插入重复数据。
创建索引
getCollection().createIndex(new BasicDBObject(userId, 1)
, new BasicDBObject("name", "uidx-something-user")
.append("partialFilterExpression", new BasicDBObject(Properties.someting, new BasicDBObject("$eq", true)))
.append("unique", true));
来自getIndicies
命令的索引
{
"v" : 1,
"unique" : true,
"key" : {
"userId" : 1
},
"name" : "uidx-something-user",
"ns" : "somewhere.something",
"partialFilterExpression" : {
"something" : {
"$eq" : true
}
}
}
重复的文件
{
"_id" : "08a8506c-bcbc-4ed6-9972-67fd7c37b4bc",
"userId" : "1068",
"express" : false,
"something" : true,
"items" : [ ],
"recipient" : {
"_id" : "efbd8618-c480-4194-964e-f5a821edf695"
}
}
{
"_id" : "b6695c6a-f29d-4531-96ac-795f14c72547",
"userId" : "1068",
"express" : false,
"something" : true,
"items" : [ ],
"recipient" : {
"_id" : "4f93fe38-edb2-4cb7-a1b3-c2c51ac8ded1"
}
MongoDb 版本:3.2.7,似乎也发生在 3.2.12
旁注:转储和恢复集合时,抛出 duplicate key error
为什么有时可能会插入重复数据以及如何避免这种情况?
更新
我创建了一个 MongoDb 问题 https://jira.mongodb.org/browse/SERVER-28153
已在 3.2.13、3.4.4、3.5.6 中修复
您可以在 mongodb jira
中阅读更多内容
我在一个集合上确实有一个带有 partialFilterExpression
的唯一索引,但有时会插入重复数据。
创建索引
getCollection().createIndex(new BasicDBObject(userId, 1)
, new BasicDBObject("name", "uidx-something-user")
.append("partialFilterExpression", new BasicDBObject(Properties.someting, new BasicDBObject("$eq", true)))
.append("unique", true));
来自getIndicies
命令的索引
{
"v" : 1,
"unique" : true,
"key" : {
"userId" : 1
},
"name" : "uidx-something-user",
"ns" : "somewhere.something",
"partialFilterExpression" : {
"something" : {
"$eq" : true
}
}
}
重复的文件
{
"_id" : "08a8506c-bcbc-4ed6-9972-67fd7c37b4bc",
"userId" : "1068",
"express" : false,
"something" : true,
"items" : [ ],
"recipient" : {
"_id" : "efbd8618-c480-4194-964e-f5a821edf695"
}
}
{
"_id" : "b6695c6a-f29d-4531-96ac-795f14c72547",
"userId" : "1068",
"express" : false,
"something" : true,
"items" : [ ],
"recipient" : {
"_id" : "4f93fe38-edb2-4cb7-a1b3-c2c51ac8ded1"
}
MongoDb 版本:3.2.7,似乎也发生在 3.2.12
旁注:转储和恢复集合时,抛出 duplicate key error
为什么有时可能会插入重复数据以及如何避免这种情况?
更新
我创建了一个 MongoDb 问题 https://jira.mongodb.org/browse/SERVER-28153
已在 3.2.13、3.4.4、3.5.6 中修复 您可以在 mongodb jira
中阅读更多内容