试图理解 mongo $unset

Posted

技术标签:

【中文标题】试图理解 mongo $unset【英文标题】:trying to understand mongo $unset 【发布时间】:2018-07-16 04:40:30 【问题描述】:

如果我有类似的文件

 mykey:1, myarr: [8, 9, 10] 

并使用$unset 运算符和数组位置来取消设置 第 0 个元素为:

$unset:myarr.0:1

我的文档变成了

mykey:1, myarr:[9, 10]

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

【问题讨论】:

【参考方案1】:

当与 $unset 一起用于数组元素时,$unset 用 null 替换匹配的元素,而不是从数组中删除匹配的元素。此行为使数组大小和元素位置保持一致。 在您的情况下, 9 是数组的第一个元素。参考$unset

【讨论】:

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

以上是关于试图理解 mongo $unset的主要内容,如果未能解决你的问题,请参考以下文章

学习mongo系列修改器($inc/$set/$unset/$push/$pop/upsert)

PHP垃圾回收机制理解

Mongodb $unset 留下空数组对象(javascript)

PHP垃圾回收机制理解

深入理解 shell/bash

深入理解 shell/bash