数据库的删除操作
1,remove() 过时
remove() 函数是用来移除集合中的数据。在执行 remove() 函数前先执行 find() 命令来判断执行的条件是否正确,这是一个比较好的习惯。
语法:
db.collection.remove(
<query>,//(可选)删除的文档的条件。
{
justOne: <boolean>,//如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern: <document>//指定异常级别
}
)
例子:
>db.stus.remove(
{
age:66
},
{
justOne:true
})
'DeprecationWarning: Collection.remove() is deprecated. Use deleteOne, deleteMany or bulkWrite.'
{ acknowledged: true, deletedCount: 1 }
结果:
>db.stus.find({age:66})
{ _id: ObjectId("609f96456f765a36017e2a3b"),
name: '牛魔王',
gender: 'male',
age: 66,
address: '火焰山' }
//齐天大圣没了
2,如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令)
db.stus.remove({})//类似于匹配所有,执行时会一边查找一边删除,效率比较低
3,新方法: deleteOne() 和 deleteMany() 方法。
语法:
db.stus.deleteOne({条件})
db.stus.deleteMany({条件})
例子:
>db.stus.deleteOne({name:'八戒'})
{ acknowledged: true, deletedCount: 1 }
>db.stus.find({name:'八戒'})
//与返回值
>db.stus.deleteMany({gender:'male'})
{ acknowledged: true, deletedCount: 4 }
>db.stus.find({gender:'male'})
//无返回值