Получить записи данных в диапазоне от Mongodb по Pymongo - PullRequest
0 голосов
/ 15 октября 2019

Я надеюсь получить данные в определенном диапазоне от mongodb, потому что все данные слишком велики. Например, мне нужно получить диапазон между 1000-2000.

Я использую диапазон $ в агрегации mongodb, чтобы получить определенный диапазон записей данных.

client = MongoClient('mongodb://xxx.xxx.xxx.xxx')
database = client['abc_data']
print database.users.count() # this is a huge number
cursor_mongo = database.users.aggregate({$range:[0, 100]}, allowDiskUse=True)

Надеюсь получитькурсор, включающий диапазон данных от 0 до 100. Но получил ошибку:

cursor_mongo = database.stackoverflow_users.aggregate({$range:[0, 100]}, allowDiskUse=True)
                                                           ^
SyntaxError: invalid syntax

1 Ответ

1 голос
/ 15 октября 2019

Ваш агрегация синтаксис неправильный (но вы уже это знали!)

Подводя итог:

  • Агрегация принимает массив этапов в качестве конвейера.
  • каждый этап может использовать агрегирование операторов

Теперь ваше объяснениенепонятно: какой у вас ассортимент? значение поля? Или только количество / положение документов, которые вы хотите получить?

В ОБОИХ СЛУЧАЯХ агрегирование не требуется!

Если оно представляет значение поляВы можете достичь с помощью следующего запроса:

db.collection.find({"fieldName":{$gte:100,$lt:200}})

Если это число и позиция документов,

db.collection.find().skip(100).limit(100)

Примечание: я использовал 100 и 200 в качестве начала и конца диапазона, чтобыпоказатель использования метода пропуска

...