db.collection.remove()方法,用来删除符合条件的文档对象,有几个符合的就删除几个,remove()方法可以根据条件来删除文档,传递的条件方式和find()方法一样,(默认情况下会删除多个)。
有2个符合条件的,那就删除2个。
-
如果只是传递一个空对象作为参数,则会删除集合中的所有文档,即清空集合中的文档对象(集合还是在的),但它的删除效率很慢,它是一个文档一个文档地删除,而不是直接一次性删除整个集合里面的所有文档。
- 如果你想直接删除整个集合,db.collection.drop()方法,可以直接删除整个集合,和我们日常说的删库跑路的意思有点接近了,因为集合没了,MongoDB服务器也会将数据库自动默认删除。
- 既然有删除集合,那肯定也有删除真个数据库的方法,db.dropDatabase()方法真正做到了删库跑路,一了百了。
db.collection.remove()方法和db.collection.deleteMany()方法是一样的默认效果。
remove()方法传入第二个参数true deleteOne()如果db.collection.remove()方法传入第二个参数true,那么它实现的效果和db.collection.deleteOne()是一样的。
障眼法删除。
- 我们一般不会去真正删除数据库中的数据,而是使用了某种障眼法去掩饰让别人误以为删除了。
-
如下图,我们有以下数据,如果我们想删除age:21的字段,则需使用障眼法删除即可,这种障眼法删除,数据还是存在数据库当中。
我们看下,到底有没有真正删除了。
我们可以看到上图,age:21字段没有被真正删除,这意味着障眼法删除它可以被恢复。
网友评论