2012-03-22 14 views

risposta

12

Si consiglia di utilizzare .drop() invece di .remove(), vedere la documentazione per il dettaglio: http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.drop

=====

Scusate malinteso tua domanda.

Per verificare se esiste una collezione, metodo di collection_names utilizzare su base di dati:

>>> collection_name in database.collection_names() 

Per verificare se una collezione è vuota, l'uso:

>>> collection.count() == 0 

sia restituirà True o False in risultato.

4

Hai provato questo:

db.collection.remove();

+0

db.collection.remove() rimuove solo tutti i record da collezione che corrisponde alla query dato in rimuovere. Ad esempio db.collection.remove ({name: 'abc'}) rimuoverà tutti i record con il nome 'abc', la query vuota in remove causerà la rimozione di tutti i record, ma la raccolta rimarrà invariata. – Dania

36

codice di esempio in Pymongo con un commento come spiegazione:

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

vuoi veramente interrogare tutte le collezioni nel database ogni volta che vuoi controllare se la collezione esiste? –

+0

@MoatazElmasry, il metodo per verificare se la raccolta esiste non è stata ancora implementata in mongodb, puoi controllare su questo problema: https://jira.mongodb.org/browse/SERVER-1938 – EwyynTomato

+0

@MoatazElmasry nel frattempo, se hai davvero bisogno di Ottimizza le prestazioni della tua applicazione, puoi ricorrere ad altre tecniche come i risultati della raccolta pre-cache. – EwyynTomato

Problemi correlati