Обновите MongoDB 2.6.12 до 4.2 в Ubuntu 16.04 - PullRequest
0 голосов
/ 27 мая 2020

У меня есть веб-приложение, использующее MongoDB (версия 2.6.12), размещенное на сервере DigitalOcean (Ubuntu 16.04).

Мне нравится использовать Robo 3T для подключения к удаленной базе данных и выполнения простых запросов .

Теперь мне нужно выполнить запросы, содержащие вроде $lookup, они сказали мне, что MongoDB версии 2.16.12 не поддерживает это. Поэтому мне нужно серьезно сделать резервную копию моей базы данных и обновить MongoDB.

Когда я смотрю это руководство , мне кажется, что это слишком сложно: я не знаю, есть ли у меня драйверы MongoDB, общие кластеры, автономные экземпляры и т. д. c.

Кто-то также говорит, что нам нужно делать это шаг за шагом: обновить до определенной версии, а затем до 4.2. этот подход ? Перед действиями я хотел бы убедиться ...

Изменить 1: Вот часть кода в models/Users.js:

addAccountWOCheck(profile) {
    return new Promise((resolve, reject) => {
        var x = {}; x[profile.provider] = profile;
        var collection = new this.user(x);
        this.setPassword(x, profile.password);
        delete collection.local.password;
        delete collection.local.passwordRepeat 
        collection.save((err, data) => { if (err) throw (err); resolve(data) }) // {JavaScript}: only "collection.save()" does not work here
    })
}

setPassword(collection, password) {
    var salt = crypto.randomBytes(16).toString('hex');
    var hash = crypto.pbkdf2Sync(password, salt, 1000, 64, 'SHA1').toString('hex');
    collection.local.hash = hash;
    collection.local.salt = salt
}

1 Ответ

1 голос
/ 27 мая 2020

{ ссылка } 8 лет, поэтому ссылки могут больше не работать.

Драйверы MongoDB обычно представляют собой библиотеки, которые вы используете в своем приложении для обработки подключения к базе данных для запроса , вставить, et c. Если вы обновите базу данных с 2.6 до 4.2 без обновления драйвера, возможно, она не сможет подключиться. Лучше всего сначала обновить драйвер, а затем базу данных.

Если вы собираетесь использовать mongodump для резервного копирования данных и mongorestore, чтобы вставить его в обновленную базу данных, вам не нужно выполнять поэтапное обновление .

  • резервное копирование набора данных с помощью mongodump
  • удаление существующей версии
  • следуйте инструкциям по установке для MongoDB 4.2
  • восстановить данные с помощью mongorestore

Одним из основных изменений между 2.6 и более новыми версиями является аутентификация. MongoDB-CR вообще не поддерживается в 4.2, поэтому вам, вероятно, потребуется воссоздать всех ваших пользователей после обновления.

MMAP также исчез, но это не должно быть проблемой при использовании резервной копии / restore метод обновления.

...