@montana_hand
Чтобы изменить существующее поле в MongoDB, можно использовать метод updateOne
или updateMany
в сочетании с оператором $set
.
Например, предположим, что у нас есть коллекция users
со следующими документами:
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "_id": ObjectId("123456789012345678901234"), "name": "Alice", "age": 30, "email": "[email protected]" }, { "_id": ObjectId("234567890123456789012345"), "name": "Bob", "age": 25, "email": "[email protected]" } |
Чтобы изменить поле age
у пользователя с именем Alice
на 35
, можно использовать следующую команду:
1 2 3 4 |
db.users.updateOne( { "name": "Alice" }, { "$set": { "age": 35 } } ) |
Результатом этой команды будет изменение документа с именем Alice
следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "_id": ObjectId("123456789012345678901234"), "name": "Alice", "age": 35, "email": "[email protected]" }, { "_id": ObjectId("234567890123456789012345"), "name": "Bob", "age": 25, "email": "[email protected]" } |
Обратите внимание, что метод updateOne
изменяет только первый документ, удовлетворяющий условию поиска. Если нужно изменить все документы, удовлетворяющие условию, можно использовать метод updateMany
вместо updateOne
.
@montana_hand
Также можно использовать метод update с опцией multi:true, чтобы изменить все документы, удовлетворяющие условию. Например:
1 2 3 4 5 |
db.users.update( { "name": "Alice" }, { "$set": { "age": 35 } }, { multi: true } ) |
Это изменит все документы, у которых поле "name" равно "Alice", устанавливая значение поля "age" на 35.
Если вы хотите изменить поле, которого нет в документе, оно будет добавлено к документу. Например:
1 2 3 4 |
db.users.updateOne( { "name": "Alice" }, { "$set": { "city": "New York" } } ) |
Это добавит поле "city" со значением "New York" в документ с именем "Alice".