Код, о котором идет речь, это строка
cursor = collection.find({"entities": {"hashtags": parameter}})
Этот ответ объясняет, почему невозможно напрямую выполнить то, что вы просите.
запрос mongodb: $ size с $ gtвсегда возвращает 0
Этот ответ также описывает потенциальные (но плохие) идеи, чтобы обойти его.
Лучшее предложение - изменить все ваши документы и вставить ключ "num_hashtags" вгде-то индексировать его и выполнить запрос к нему.
Используя API JSON Twitter , вы можете обновить все свои документы и вставить ключ num_hashtags в документ сущностей.
В качестве альтернативы, вы могли бы решить вашу непосредственную проблему, выполнив очень медленное сканирование полной таблицы по всем документам для каждого запроса , проверяя, существует ли номер хештега, который на один больше вашего параметра, путем злоупотребления Точка нотации MongoDB .
gt_parameter = int(parameter) + 1 # question said greater than not greater or equal
key_im_looking_for = "entities.hashtags.{}".format(gt_parameter) #create the namespace#
# py2.7 => key_im_looking_for = "entities.hashtags.%s" %(gt_parameter)
# in this example it would be "entities.hashtags.6"
cursor = collection.find({key_im_looking_for: {"$exists": True}})
Ответ best (и основная причина использования базы данных NoSQL в первую очередь) заключается в том, что вы должны изменить свои данные в соответствии со своим поиском.Если возможно, вы должны выполнить обновление на месте, добавив ключ num_hashtags.