我在mongodb集合中有一个数组,想要从索引中删除一个元素,没有找到如何制作它,或者是它的操作符...
文档示例:
{
"_id": "<someID>",
"array": [
{
"elemt": 1
},
{
"elemt": 2,
},
{
"elemt": 2,
}]
}
(可能会发生重复 - 并且不想删除这些重复项)
我希望能够用它的索引删除一个元素......
使用:
答案 0 :(得分:0)
我有一个两步解决方案来实现你所描述的。
null
从您的数组中查找null
元素和$pull
元素。
db.collection.update({}, {$unset : {"array.2" : 1 }});
db.collection.update({}, {$pull : {"array" : null }});
您可以在查询中指定_id
。您不能使用字符串模板在查询中指定索引。它会抛出错误“意外的模板字符串”。
您可以使用计算属性:
var arrIndex = `array.${index}`;
/* ... */
db.collection.update({}, {$unset : {[arrIndex] : 1 }});
或只是将字符串文字包装在方括号[]
中,如下所示:[array.${index}]
。