Я пытаюсь отсортировать коллекцию, а затем напечатать первые 5 докторов, чтобы убедиться, что он работает:Простой скрипт не печатает
#!/user/bin/env python
import pymongo
# Establish a connection to the mongo database.
connection = pymongo.MongoClient('mongodb://localhost')
# Get a handle to the students database.
db = connection.school
students = db.students
def order_homework():
projection = {'scores': {'$elemMatch': {'type': 'homework'}}}
cursor = students.find({}, projection)
# Sort each item's scores.
for each in cursor:
each['scores'].sort()
# Sort by _id.
cursor = sorted(cursor, key=lambda x: x['_id'])
# Print the first five items.
count = 0
for each in cursor:
print(each)
count += 1
if count == 5:
break
if __name__ == '__main__':
order_homework()
Когда я запускаю это, ничего не печатает.
Если я выберу сортировку, она будет напечатана.
Каждый вид работает при запуске отдельно.
Пожалуйста, научите меня тому, что я делаю неправильно/воспитываю меня.
, если у вас нет ошибок и никаких отпечатков в одно и то же время означает, что цикл не был выполнен. Поэтому взгляните на то, что находится внутри курсора - возможно, у него нет записей внутри - скорее всего, он просто пуст. –
Что такое 'cursor' - список или итератор? итератор после первой итерации ничего не показывает. – furas
'' cursor'' содержит 200 документов в формате, показанном здесь: https://gist.github.com/BigGingerJake/82d9dc89d534ff331e0783d2c4fc6e42, если я запускаю код для переменных '' projection'' и '' cursor'' независимо от mongo клиент. Я вижу, что '' cursor'' содержит документы. –