Python Mongodb データ削除
使用できるのはdelete_one()メソッドで1つのドキュメントを削除します。このメソッドの最初のパラメータはクエリオブジェクトで、削除するデータを指定します。
この記事で使用するテストデータは次のとおりです(画像をクリックすると拡大表示されます):
次の例では、name フィールドの値が "Taobao" のドキュメントを削除します:
例
#!/usr/bin/python3
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["サンプルdb"]
mycol = mydb["sites"]
myquery = { "name": "Taobao" }
mycol.delete_one(myquery)
# 削除後の出力
for x in mycol.find():
print(x)
出力結果は次のとおりです:

複数のドキュメントを削除
使用できるのはdelete_many()メソッドで複数のドキュメントを削除します。このメソッドの最初のパラメータはクエリオブジェクトで、削除するデータを指定します。
name フィールドが F で始まるすべてのドキュメントを削除します:
例
#!/usr/bin/python3
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["サンプルdb"]
mycol = mydb["sites"]
myquery = { "name": {"$regex": "^F"} }
x = mycol.delete_many(myquery)
print(x.deleted_count, "個のドキュメントが削除されました")
出力結果は次のとおりです:
1 个文档已删除
コレクション内のすべてのドキュメントを削除
delete_many() メソッドに空のクエリオブジェクトを渡すと、コレクション内のすべてのドキュメントが削除されます:
例
#!/usr/bin/python3
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["サンプルdb"]
mycol = mydb["sites"]
x = mycol.delete_many({})
print(x.deleted_count, "個のドキュメントが削除されました")
出力結果は次のとおりです:
5 个文档已删除
コレクションを削除
使用できるのはdrop()メソッドでコレクションを削除します。
次の例では、customers コレクションを削除します:
例
#!/usr/bin/python3
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["サンプルdb"]
mycol = mydb["sites"]
mycol.drop()
削除に成功すると drop() は true を返し、削除に失敗した場合(コレクションが存在しない場合)は false を返します。
次のコマンドを使用して、ターミナルでコレクションが削除されたかどうかを確認します:
> use サンプルdb switched to db サンプルdb > show tables;その他の拡張
Python Mongodb