@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
для отображения сообщения об ошибке.