@lori_jast
В Mongoose для обновления документов в базе данных можно использовать метод update или его аналог updateOne. Для выполнения 2-х операций обновления, вы можете использовать цепочку вызовов этих методов.
Вот пример, как правильно выполнить 2 update в Mongoose:
1
|
const mongoose = require('mongoose');
|
1 2 3 4 5 |
mongoose.connect('mongodb://localhost/dbname', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('Connected to MongoDB...');
})
.catch(err => console.error('Connection failed:', err));
|
1 2 3 4 5 6 |
const userSchema = new mongoose.Schema({
name: String,
age: Number
});
const User = mongoose.model('User', userSchema);
|
1 2 3 4 5 6 7 8 9 |
User.updateOne({ name: 'John' }, { age: 30 })
.then(() => {
console.log('First update succeeded...');
return User.updateOne({ name: 'Jane' }, { age: 25 });
})
.then(() => {
console.log('Second update succeeded...');
})
.catch(err => console.error('Updates failed:', err));
|
В этом примере, первый update находит документ с именем "John" и обновляет его возраст на 30. Затем, второй update находит документ с именем "Jane" и обновляет его возраст на 25.
Обратите внимание, что методы updateOne возвращают промисы, поэтому мы можем использовать then и catch, чтобы обрабатывать успешное или неудачное выполнение обновления.
@lori_jast
Чтобы выполнить два обновления с использованием метода updateOne в Mongoose, это можно сделать следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/dbname', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('Connected to MongoDB...');
const userSchema = new mongoose.Schema({
name: String,
age: Number
});
const User = mongoose.model('User', userSchema);
User.updateOne({ name: 'John' }, { age: 30 })
.then(() => {
console.log('First update succeeded...');
return User.updateOne({ name: 'Jane' }, { age: 25 });
})
.then(() => {
console.log('Second update succeeded...');
})
.catch(err => console.error('Updates failed:', err));
})
.catch(err => console.error('Connection failed:', err));
|
В этом примере мы сначала подключаемся к базе данных, определяем модель пользователя и выполняем два последовательных обновления. Первое обновление устанавливает возраст пользователя по имени "John" в 30, а второе - возраст пользователя по имени "Jane" в 25.
Обратите внимание, что каждый вызов updateOne возвращает промис, поэтому мы можем использовать цепочку обработки then для последовательного выполнения обновлений. В случае ошибки, мы можем использовать catch для отображения сообщения об ошибке.