Как сделать этот запрос с Mongo 4.0 на Mongo 3.6 - PullRequest
0 голосов
/ 06 июня 2019

Как сделать так, чтобы этот запрос также работал в 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 Ответ

0 голосов
/ 06 июня 2019

Проблема в не с MongoDB, это с DocumentDB. Мне удалось найти только один другой результат поиска на AWS относительно этой проблемы.

Опубликованная проблема:

К вашему сведению, я столкнулся с этой ошибкой при использовании DocumentDB:

$ в размере массива не должен превышать 10000

Я проверил документы и не вижу упомянутых ограничений. Можно было использовать большие массивы с MongoDB, и я не могу найти никакого такого ограничения для массива в документации MongoDB.

Ответ AWS:

Спасибо, что нашли время сообщить о проблеме. Мы работаем над исправлением. Как только исправление будет выпущено, мы опубликуем обновление этой темы.

Вышеупомянутый ответ был 29 мая 2019 года, то есть 8 дней назад на момент этого ответа. Это проблема, над которой они сейчас работают, но отсутствие обновления говорит о том, что в настоящее время не существует исправлений. Вам просто придется подождать, пока они не выпустят исправление, и либо обойти ограничение, либо продолжить использовать MongoDB вместо DocumentDB, пока исправление не будет на месте.

...