pymongo find().hint('index') не использует индекс

Я пытаюсь использовать индекс для доступа к документам в коллекции, используя определенный индекс в Python 3.5 с Pymongo 3.3.0 и Mongodb 3,2. Я создал поле под названием sequence в каждом документе, который содержит номер, определяющий порядок загрузки документов. Я создал индекс для этого поля и дал ему имя 'sequence' используя следующую команду:

db.pages.create_index([('pages.sequence', pymongo.ASCENDING)], name='sequence')

Код, используемый для загрузки документов:

with MongoClient(tz_aware=True) as client:
    db = Database(client, name)
    for doc in db['pages'].find().hint('sequence').limit(1):
        ...

Документ, возвращаемый в doc, не содержит порядковый номер 1 и не является первым документом, загруженным в Mongodb. Как я должен убедиться, что документы возвращаются в порядке возрастания на основе значения в 'sequence' поле в каждом документе?

Редактировать:Sort не может использоваться, поскольку коллекция слишком велика, размером примерно 16 ГБ. Документация, кажется, утверждает, что использование индекса вернет данные в порядке ключей в индексе. Если это не так, нельзя ли использовать индекс для определения порядка поиска документов в коллекции?

0 ответов

Другие вопросы по тегам