如何查看收藏夹是否为视图?

时间:2020-09-14 12:55:36

标签: pymongo

我需要对所有集合执行一些操作。我用一些简单的代码列出了它们:

for collection_name in db.list_collection_names():
   # do something that work only on collection that are not a view

我得到了包括视图在内的所有收藏。这与我想要的不兼容。所以:
如何查看收藏夹是否为视图?
获取集合列表时如何过滤视图?

1 个答案:

答案 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)