@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".