【发布时间】:2012-04-07 00:45:40
【问题描述】:
如果集合存在并且是否存在为空(从集合中删除所有),如何检查 PyMongo? 我试过了
collection.remove()
或
collection.remove({})
但它不会删除集合。该怎么做?
【问题讨论】:
如果集合存在并且是否存在为空(从集合中删除所有),如何检查 PyMongo? 我试过了
collection.remove()
或
collection.remove({})
但它不会删除集合。该怎么做?
【问题讨论】:
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.list_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 and all documents contained.
【讨论】:
您应该使用.drop() 而不是.remove(),有关详细信息,请参阅文档:http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.drop
=====
很抱歉误解了您的问题。
要检查集合是否存在,请在数据库上使用方法collection_names:
>>> collection_name in database.list_collection_names()
要检查集合是否为空,请使用:
>>> collection.count() == 0
两者都会在结果中返回 True 或 False。
【讨论】:
collection_names 已弃用。请改用list_collection_names
你试过了吗:
db.collection.remove();
【讨论】: