我需要对所有集合执行一些操作。我用一些简单的代码列出了它们:
for collection_name in db.list_collection_names():
# do something that work only on collection that are not a view
我得到了包括视图在内的所有收藏。这与我想要的不兼容。所以:
如何查看收藏夹是否为视图?
获取集合列表时如何过滤视图?
答案 0 :(得分:0)
您可以使用list_collections()
并过滤掉不是集合的项目。创建视图会添加一个system.views
集合,下面的示例也将其过滤掉。
from pymongo import MongoClient
db = MongoClient()['mydatabase']
for collection_name in db.list_collections(filter={'type': 'collection', 'name': {'$ne': 'system.views'}}):
print(collection_name)