【发布时间】:2013-12-29 21:29:57
【问题描述】:
文档长这样,
{
"_id":"ffffff999999999f9ff9f9f9f",
"Name" : "John Doe",
"Array" : [{
"Id1" : "a8ed3d86b8464e0cae4672cef3862860",
"Id2" : "6d7aac14b1e142abafde167d928e3dbc",
"Id3" : "2323232"
}]
}
3 个数组元素的组合有一个唯一性索引。 所以索引看起来像这样,
"key" : {
"Array.Id1" : 1,
"Array.Id2" : 1,
"Array.Id3" : 1
},
"unique" : true,
我的要求:我想根据“_id”值查找文档并完全删除数组元素。
问题: 我正在尝试这样的事情,
db.Collection.update({"_id":"ffffffff52a8a15ce4b05d6a8d40f973"},{$unset:{Array:1}})
当我尝试取消设置数组元素时,第一次更新通过但连续更新失败并出现以下错误,
*E11000 重复键错误索引:int.Collection.$Array.Id1_1_Array.Id2_1_Array.Id3_1 重复键:{:null,:null,:null}*
我想知道这个问题是否有任何解决方法。
我必须在一个庞大的集合上运行它,并且修改索引不是一种选择。
任何建议都会很有帮助。
谢谢。
【问题讨论】:
-
您需要修改或删除索引。
标签: mongodb