コレクションが存在し、空の場合(コレクションからすべて削除する)PyMongoをチェックインする方法は? 私はコレクションが存在し、空の場合(コレクションからすべて削除する)PyMongoをチェックインする方法?
collection.remove()
または
collection.remove({})
のように試してみましたが、それはコレクションを削除しません。どうやってするか ?
コレクションが存在し、空の場合(コレクションからすべて削除する)PyMongoをチェックインする方法は? 私はコレクションが存在し、空の場合(コレクションからすべて削除する)PyMongoをチェックインする方法?
collection.remove()
または
collection.remove({})
のように試してみましたが、それはコレクションを削除しません。どうやってするか ?
あなたは細部のためのマニュアルを参照して、代わりに.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を返します。
は、あなたはこれを試してみました:説明としてコメントとPymongoで
db.collection.remove();
サンプルコード:
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
コレクションが存在するかどうかを確認するたびに、データベース内のすべてのコレクションを照会したいのですか? –
@MoatazElmasry、コレクションが存在するかどうかをチェックするメソッドがまだmongodbに実装されていない場合、この問題を確認することができます:https://jira.mongodb.org/browse/SERVER-1938 – EwyynTomato
@MoatazElmasry一方、アプリケーションのパフォーマンスを最適化するために、コレクション結果をプリキャッシングするなどの他の手法に頼ることができます。 – EwyynTomato
db.collection.removeは()のみのクエリに一致するコレクションからすべてのレコードを削除します削除で与えられます。たとえば、db.collection.remove({name: 'abc'})は、名前が 'abc'のすべてのレコードを削除しますが、removeの空のクエリはすべてのレコードを削除しますが、コレクションはそのままです。 – Dania