MongoDB数组删除元素

MongoDB数组删除元素

MongoDB 中,我们需要给某个数组类型的字段删除一个元素,可以使用 update 语句加上 pull 来实现。

MongoDB数组删除元素详解

语法

db_name.collection_name.update( <query>, {$pull:{filed:value}} )

参数

参数 描述
db_name 数据库名
collection_name 集合名
query 必选项,是设置更新的文档的条件
filed 需要删除的字段
value 需要添加的字段的值

说明

在 update 里面,使用 pull 来给数组类型的字段删除元素。

案例

我们首先,使用 mongo 命令,连接上数据库,具体命令如下:

mongo

如下图所示:

93_mongodb数组删除元素push.png

现在,我们使用 use 命令,切换到 haicoder 数据库,具体命令如下:

use haicoder

现在,我们使用 insert 插入一条记录,具体命令如下:

db.haicoder.insert({"name":"haicoder", "course":["c++","python","java"]})

执行完毕后,此时,如下图所示:

94_mongodb数组删除元素push.png

我们看到,此时提示我们成功插入了一条记录,现在,我们使用 find 查询当前的所有记录,具体命令如下:

db.haicoder.find({}, {_id:0})

执行完毕后,此时,如下图所示:

95_mongodb数组删除元素push.png

现在,我们使用 update 给 course 字段删除一个元素,具体命令如下:

db.haicoder.update({"name":"haicoder"}, {"$pull":{"course" : "python"}})

执行完毕后,我们再次使用 find 查看记录,如下图所示:

96_mongodb数组删除元素push.png

我们看到,此时,该条记录里面的 course 字段已经被我们删除了元素,现在,我们再次使用 push 向该条记录插入一个元素,具体命令如下:

db.haicoder.update({"name":"haicoder"}, {"$push":{"course" : "java"}})

执行完毕后,我们再次使用 find 查看记录,如下图所示:

97_mongodb数组删除元素push.png

现在,我们再次使用 update 给 course 字段删除一个元素,具体命令如下:

db.haicoder.update({"name":"haicoder"}, {"$pull":{"course" : "java"}})

执行完毕后,我们再次使用 find 查看记录,如下图所示:

98_mongodb数组删除元素push.png

我们看到,此时,该条记录里面的 course 字段里面的所有的 java 元素都被删除了。

MongoDB数组删除元素总结

在 MongoDB 中,我们需要给某个数组类型的字段增加一个元素,可以使用 update 语句加上 pull 来实现。