Как активировать PyMongo Intellisense в визуальном коде?

#python #mongodb #visual-studio-code #pymongo

#python #mongodb #visual-studio-code #pymongo

Вопрос:

Я изучаю, как использовать Python и MongoDB с VisualCode, и мне было интересно, как я могу заставить Intellisense работать с пакетом PyMongo? Мне бы хотелось, чтобы я мог видеть, какие функции я мог бы использовать с MongoClient.

Это то, что мне нужно установить, или это то, что не поддерживается?

Комментарии:

1. Смотрите Python в Visual Studio Code и, возможно, другие предложения marketplace с аналогичной функциональностью. В этом нет ничего «специфичного для pymongo», поскольку «intellisense» просто собирается проверять используемые пакеты. Также существует документация , для которой знание того, что делают вещи, намного лучше для вас, чем просто запрос списка доступных функций класса. Чтение документации — это действительно способ обучения.

2. Есть одна специфичная для pymongo вещь 🙂 Стандартным способом работы с pymongo API является db.nameOfTheCollection.find(query) . Возможно, при завершении кода (в данном случае Intellisense) могут возникнуть проблемы с пониманием того, что это значит, потому что, конечно, у db объекта нет прямого атрибута nameOfTheCollection (все это выполняется динамически через __getattr__ ).

3. Также я считаю, что Visual Studio (по крайней мере, с C # и MS SQL) может быть настроена с завершением кода даже для схемы базы данных (имена таблиц, имена столбцов и типы …), но, возможно, нелегко для Python и pymongo / MongoDB.

4. @Messa ваш комментарий может быть принятым ответом

Ответ №1:

С pymongo мы обычно используем базу данных и коллекцию таким образом:

 client = MongoClient('localhost', 27017)
db = client.testDb
collection = db.users
  

Как упоминал @Messa, у intellisense возникают проблемы с динамическими атрибутами, подобными этому, если вы хотите активировать intellisense, вы должны использовать индексаторы MongoClient для доступа к базе данных и коллекции

 client = MongoClient('localhost', 27017)
db = client["testDb"]
collection = db["users"]