У меня есть веб-приложение, использующее 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
}