#pymongo
#pymongo
Вопрос:
Мне нужно выполнить некоторые действия со всеми коллекциями. Я перечисляю их с помощью такого простого кода:
for collection_name in db.list_collection_names():
# do something that work only on collection that are not a view
Я получаю все коллекции, включая представления. Который не работает с тем, что я хочу. Итак:
Как я могу проверить, что коллекция является представлением?
Как я могу отфильтровать представления при получении списка коллекций?
Ответ №1:
Вы можете использовать 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)
Комментарии:
1. Спасибо за ваш ответ! Фильтр работает, и при использовании list_collections у меня также есть доступ к collection[«type»], чтобы узнать, действительно ли это коллекция или представление.