2017-02-22 15 views
-2

Моя виртуальная машина всегда возвращает пустой указатель на запросы. Что-то не так с сервером или моим кодом?не может понять, что не так с этим простым кодом pymongo.

Мой код:

Code

Мой виртуальный экран машины:

virtual machine

+2

всегда включают форматированный код на ваш вопрос, а не скриншоты. Помогает другим попробовать и отладить его. –

+0

Прокрутите страницу http://api.mongodb.com/python/current/tutorial.html - я верю, что это ответит на ваш вопрос. В частности, посмотрите раздел «Запрос для более одного документа». – wazy

+0

@wazy: вы видите что-то не так? Я следовал за удемией.com, я попытался написать тот же самый код, что и парень в видео. Но я не получаю результатов, когда я запускаю –

ответ

0

Без получения более подробной информации, это то, что я могу понять из кода:

Вы создание экземпляра клиента:

client = pymongo.MongoClient(url) 

Я считаю, что это работает, учитывая ваш второй снимок экрана.

Вы получаете один из баз данных, доступных для клиента:

db = client["fullstack"] 

Это может быть потенциальной проблемой. У вас есть база данных «fullstack»? Может быть, это называется «fullStack» или подобное?

По умолчанию, если у вас нет базы данных «fullstack», mongo «создаст» ее для вас (это может быть не правильный термин. По существу, это делает use fullstack в оболочке монго. У вас есть «fullstack» db, он будет работать, и вы сможете взаимодействовать с ним, но если вы ничего не сделаете с этим db, он исчезнет после отключения.)

Вы пытаетесь доступ к коллекции.

collection = db["students"] 

Снова, та же проблема, что и у дБ. Удостоверьтесь, что это «студенты», а не «Студенты» или что-то в этом роде. Кроме того, убедитесь, что у вас есть записи.

Я бы посоветовал делать что-то вроде:

collection.insert_one({'test': 'record'})

Это, чтобы убедиться, что вы на самом деле есть что-то там.

Вы можете удалить его после этого делать что-то вроде:

collection.remove({'test': 'record'})

Кроме того, итерация курсор потребляет курсор. Так как вы не имеете миллионы записей, вы можете сделать что-то вроде:

records = [record for record in collection.find({})] 

Это будет держать все ваши записи, в памяти, в списке, который можно повторно использовать.

Надеюсь, это поможет!

 Смежные вопросы

  • Нет связанных вопросов^_^