在db中刪除數據是十分危險的事,建議使用logic delete,即在doc中增加一個field:IsDeleted,將其設置為1,表示該doc在邏輯上被刪除,這種workaround將delete操作轉換為一個update操作,比較安全。
MongoDB使用remove刪除doc,語法如下,
db.collection.remove( <query filter>, { justOne: <boolean>, writeConcern: <document> } ) query filter= { <field1>: <value1>, ... } { <field1>: { <operator1>: <value1> }, ... }
All write operations in MongoDB are atomic on the level of a single document.
1,示例
創建users collection
use test user1={ name:"t1", age:21} user2={ name:"t2", age:22} user3={ name:"t3", age:23} db.users.insert([user1,user2,user3])
2,刪除所有doc
在query filter中設置empty filter,空的doc,將所有的doc都刪除。
db.users.remove({})
3,刪除所有符合query filter的doc
db.users.remove({age:21})
4,只刪除第一個符合query filter的doc,設置justOne 參數為true
db.users.remove({age:{$gt:21}},{justOne:true})
5,以原子操作刪除所有符合query filter的doc,即在一個原子操作中獎多個doc刪除
db.users.remove({age:{$gte:21},$isolated:1})
參考doc:
