Как сделать этот запрос с 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, пока исправление не будет на месте.

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