介绍
介绍
我们在使用MongoDB数据库的时候会有需要对数据库里的数据进行物理删除(状态删除的数据还是存在的)的需求,通常情况下物理删除的数据是找不回来的(能找回来对于就想抹掉数据的需求来说也不安全),所以我们有必要对删除数据的方法有一个深入的了解。
remove
使用db.connection.remove()方法可以删除符合规则的数据。
如果参数为空,或者不是有效参数,都会清空集合全部数据!!!
准备
首先向集合c里面插入3条数据。
语法
删除一条匹配的文档。
db.c.remove({"dm":{$regex: /tongfu\.net/}}, {"justOne": true})
删除所有匹配的文档。
db.c.remove({"dm":{$regex: /tongfu\.net/}})
删除所有文档,随便传入一个只包含字母和数字的字符串。
db.c.remove("anything")
delete
准备
同样准备了3条数据。
deleteOne
使用deleteOne可以删除匹配的一条数据。
db.c.deleteOne({"dm":{$regex: /tongfu\.net/}})
deleteMany
使用deleteMany可以删除匹配的所有数据。
db.c.deleteMany({"dm":{$regex: /tongfu\.net/}})
删除所有文档
无论是deleteOne还是deleteMany都不会有像remove那样随便传一个字符串就清空集合的功能。
总结
今天福哥带着童鞋们学习了MongoDB数据库删除数据的几种方法,这里面remove方法有点生猛,一个不小心就会把数据弄丢了。而deleteMany方法也有这样的风险,不过没有“删除所有文档”的功能风险小一些。最稳妥的是deleteOne方法,在没有删除多条数据的预期的情况下还是用这个吧!