Как сделать этот запрос с Mongo 4.0 на Mongo 3.6
Как сделать так, чтобы этот запрос также работал в 3.6 mongodb?
def get_metadata(self, job_id_list):
# Gets all the document attributes except for `xml` and `_id` field
resultList = list(self.collection.find({'jobId': {"$in": job_id_list}}, {'xml': 0, '_id': 0}))
return resultList
Дело в том, что мы мигрируем, чтобы использовать documentdb и documentDB по умолчанию, работает mongo 3.6.
Я получаю эту ошибку, и я думаю, что это версия.
pymongo.errors.OperationFailure: $in array size must not be greater than 10000
1 ответ
Проблема не в MongoDB, а в DocumentDB. Мне удалось найти только один другой результат поиска в AWS, касающийся этой проблемы.
Опубликованная проблема:
К вашему сведению, я столкнулся с этой ошибкой с DocumentDB:
$ в размере массива не должен превышать 10000
Я проверил документы и не вижу упомянутых ограничений. Было возможно использовать большие массивы с MongoDB, и я не могу найти никакого такого ограничения для массива в документации MongoDB.
Ответ AWS:
Спасибо, что нашли время сообщить о проблеме. Мы работаем над исправлением. Мы опубликуем обновление в этой теме, как только будет выпущено исправление.
Вышеупомянутый ответ был 29 мая 2019 года, что было 8 дней назад на этот ответ. Это проблема, над которой они сейчас работают, но отсутствие обновления говорит о том, что в настоящее время не существует исправлений. Вам просто придется подождать, пока они не выпустят исправление, или либо обойти ограничение, либо продолжить использовать MongoDB вместо DocumentDB, пока исправление не будет на месте.