web-dev-qa-db-ja.com

コレクションが存在し、空の場合(コレクションからすべてを削除する)PyMongoをチェックインする方法は?

コレクションが存在し、空の場合(コレクションからすべてを削除する)PyMongoをチェックインする方法は?私は

collection.remove()

または

collection.remove({})

ただし、コレクションは削除されません。どうやってするか ?

26
Damir

説明としてコメント付きのPymongoのサンプルコード:

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.list_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
52
EwyynTomato

.drop()の代わりに.remove()を使用する必要があります。詳細についてはドキュメントを参照してください: 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を返します。

18
Reorx

これを試しましたか:

db.collection.remove();

5
geakie