Как понизить версию 4.20 Mongo до 3,6 в AWS? - PullRequest
0 голосов
/ 08 октября 2019

При сохранении появляется следующая ошибка: «Неизвестный модификатор: $ pushAll. Ожидается допустимый модификатор обновления или обновление в стиле конвейера, указанное в виде массива». Я спросил эксперта, они предлагают понизить версию MongoDB. Моя текущая версия v4.2 и должна быть изменена на v3.4.

Я попытался выполнить следующую команду, но получил ошибку.

db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )

Ошибка:

{
    "ok" : 0,
    "errmsg" : "Invalid command argument. Expected '4.2' or '4.0', found 3.6 in: { setFeatureCompatibilityVersion: \"3.6\", lsid: { id: UUID(\"b146274a-8229-4e16-aec6-bfd13bebca83\") }, $db: \"admin\" }. See http://dochub.mongodb.org/core/4.0-feature-compatibility.",
    "code" : 2,
    "codeName" : "BadValue"
}

Пожалуйста, помогите мне исправить это.

1 Ответ

0 голосов
/ 09 октября 2019

Согласно примечаниям к выпуску MongoDB 3.6 относительно $pushAll:

MongoDB 3.6 удаляет устаревший оператор $ pushAll. Оператор устарел с 2.4.

Вместо $ pushAll используйте оператор $ push с модификатором $ each.

Пример цитирования:

db.students.update(
   { name: "joe" },
   { $push: { scores: { $each: [ 90, 92, 85 ] } } }
)

То есть лучший способ исправить это - заменить $pushAll в вашем коде на форму в примере. Они оба делают одно и то же, так что это прямая замена.

Если вы не можете изменить код, тогда это сложнее. Понижение рейтинга между несколькими основными версиями не поддерживается. С версии 4.2.0 вы можете понизить версию до 4.0, но не до версии 3.4 (что отстает от 3 основных версий).

Поскольку вы не можете понизить версию с 4.2.0 до 3.4, вам потребуется сбросить текущее содержимоебазу данных, установите 3.4, затем восстановите данные. Сказав это, понижение до обслуживания удаленной функции является никогда хорошей идеей.

Обратите внимание, что серия MongoDB 3.4 больше не будет поддерживаться после января 2020 года , поэтомуустановка 3.4 не является хорошим долгосрочным решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...