2012-03-22 19 views

答えて

12

あなたは細部のためのマニュアルを参照して、代わりに.remove().drop()を使用する必要があります。http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.drop

=====あなたの質問を誤解ため

申し訳ありません。

コレクションが存在する場合は、データベースの利用方法collection_names確認するには:コレクションが空であるかどうかを確認するには

>>> collection_name in database.collection_names() 

を、使用:

>>> collection.count() == 0 

両方の結果でTrueまたはFalseを返します。

4

は、あなたはこれを試してみました:説明としてコメントとPymongoで

db.collection.remove();

+0

db.collection.removeは()のみのクエリに一致するコレクションからすべてのレコードを削除します削除で与えられます。たとえば、db.collection.remove({name: 'abc'})は、名前が 'abc'のすべてのレコードを削除しますが、removeの空のクエリはすべてのレコードを削除しますが、コレクションはそのままです。 – Dania

36

サンプルコード:

from pymongo import MongoClient 
connection = MongoClient('localhost', 27017) #Connect to mongodb 

print(connection.database_names()) #Return a list of db, equal to: > show dbs 

db = connection['testdb1']   #equal to: > use testdb1 
print(db.collection_names())  #Return a list of collections in 'testdb1' 
print("posts" in db.collection_names())  #Check if collection "posts" 
              # exists in db (testdb1) 

collection = db['posts'] 
print(collection.count() == 0) #Check if collection named 'posts' is empty 

collection.drop()     #Delete(drop) collection named 'posts' from db 
+0

コレクションが存在するかどうかを確認するたびに、データベース内のすべてのコレクションを照会したいのですか? –

+0

@MoatazElmasry、コレクションが存在するかどうかをチェックするメソッドがまだmongodbに実装されていない場合、この問題を確認することができます:https://jira.mongodb.org/browse/SERVER-1938 – EwyynTomato

+0

@MoatazElmasry一方、アプリケーションのパフォーマンスを最適化するために、コレクション結果をプリキャッシングするなどの他の手法に頼ることができます。 – EwyynTomato

関連する問題