Comment vérifier dans PyMongo si la collection existe et si elle existe vide (supprimer tout de la collection)? J'ai essayé comme
collection.remove()
ou
collection.remove({})
mais il ne supprime pas la collection. Comment faire ça ?
Exemple de code dans Pymongo avec commentaire comme explication:
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
Vous devez utiliser .drop()
au lieu de .remove()
, voir la documentation pour plus de détails: http://api.mongodb.org/python/current/api/pymongo/collection.html # pymongo.collection.Collection.drop
=====
Désolé d'avoir mal compris votre question.
Pour vérifier si une collection existe, utilisez la méthode collection_names
sur la base de données:
>>> collection_name in database.collection_names()
Pour vérifier si une collection est vide, utilisez:
>>> collection.count() == 0
les deux renverront True ou False en résultat.
Avez-vous essayé ceci:
db.collection.remove();