Mongodb 试图理解mongo$unset

Mongodb 试图理解mongo$unset,mongodb,unset,Mongodb,Unset,如果我有这样的文件 { mykey:1, myarr: [8, 9, 10] } 并对数组位置使用$unset运算符来取消设置 第0个元素为: {$unset:{myarr.0:1}} 我的文件变为 {mykey:1,myarr:[9,10]} 现在,值“9”是我数组的第0个元素还是第一个元素?当与$unset一起用于数组元素时,$unset将匹配元素替换为null,而不是从数组中删除匹配元素。此行为使数组大小和元素位置保持一致。 在您的例子中,9是数组的第一个元素。参考谢谢@Muruga

如果我有这样的文件

{ mykey:1, myarr: [8, 9, 10] }
并对数组位置使用
$unset
运算符来取消设置 第0个元素为:

{$unset:{myarr.0:1}}
我的文件变为

{mykey:1,myarr:[9,10]}


现在,值“9”是我数组的第0个元素还是第一个元素?

当与$unset一起用于数组元素时,$unset将匹配元素替换为null,而不是从数组中删除匹配元素。此行为使数组大小和元素位置保持一致。

在您的例子中,9是数组的第一个元素。参考

谢谢@Murugan的回答。在这种情况下,是否有方法使用数组位置删除元素?我发现$pull根据值的条件删除数组元素。这是唯一的方法吗?我认为$pull是从数组中删除元素的唯一方法