2012-03-22 48 views

Respuesta

12

Se debe utilizar en lugar de .drop().remove(), consulte la documentación para el detalle: http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.drop

=====

Lo siento por el malentendido su pregunta.

para comprobar si existe una colección, utilice el método collection_names en la base de datos:

>>> collection_name in database.collection_names() 

para comprobar si una colección está vacía, utilice:

>>> collection.count() == 0 

ambos retornarán Verdadero o Falso en consecuencia.

4

Has probado esto:

db.collection.remove();

+0

db.collection.remove() sólo elimina todos los registros de la colección que coincide con la consulta dado en eliminar. Por ejemplo, db.collection.remove ({name: 'abc'}) eliminará todos los registros con el nombre 'abc', la consulta vacía en eliminar hará que se eliminen todos los registros, pero la colección se mantendrá tal como está. – Dania

36

código de ejemplo en Pymongo con comentario como explicación:

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

¿realmente desea consultar todas las colecciones en la base de datos cada vez que desea verificar si existe la colección? –

+0

@MoatazElmasry, método para verificar si la colección existe aún no se ha implementado en mongodb, puede verificar este problema: https://jira.mongodb.org/browse/SERVER-1938 – EwyynTomato

+0

@MoatazElmasry mientras tanto, si realmente necesita Para optimizar el rendimiento de su aplicación, puede recurrir a otras técnicas, como los resultados de la recolección previa al almacenamiento en caché. – EwyynTomato

Cuestiones relacionadas