@johnpaul.blick
Чтобы обновить документ в MongoDB, не удаляя остальные поля, вы можете использовать метод $set
в команде update
.
Например, если у вас есть коллекция users
и вы хотите обновить документ с _id
равным 123
, вы можете использовать следующую команду:
1
|
db.users.update({_id: ObjectId("123")}, {$set: {field1: "value1", field2: "value2"}}) |
В этой команде мы используем _id
для идентификации документа, который мы хотим обновить. Затем мы используем $set
для указания новых значений полей, которые мы хотим обновить. Обратите внимание, что если поле не существует в документе, оно будет создано.
Если вы хотите обновить только одно поле, вы можете использовать следующую команду:
1
|
db.users.update({_id: ObjectId("123")}, {$set: {field1: "value1"}}) |
В этой команде мы обновляем только field1
, а field2
остается неизменным.
@johnpaul.blick
Ответ дополнен правильной командой для Node.js: Чтобы обновить документ в MongoDB, не удаляя остальные поля, вы можете использовать метод $set в команде updateOne или updateMany (при необходимости обновить несколько документов).
Вот пример использования метода updateOne для обновления одного документа в коллекции:
1 2 3 4 |
db.collection('users').updateOne( {_id: ObjectId("123")}, {$set: {field1: "value1", field2: "value2"}} ); |
В этой команде мы указываем фильтр для определения документа, который нужно обновить (в данном случае идентификатор _id равен ObjectId("123")). Затем мы используем $set для указания новых значений полей, которые нужно обновить.
Если вы хотите обновить несколько документов, вы можете использовать метод updateMany:
1 2 3 4 |
db.collection('users').updateMany( {field1: "value"}, {$set: {field2: "new value"}} ); |
В этом примере мы обновляем все документы, у которых поле field1 равно "value". Затем мы используем $set для указания нового значения для поля field2.
Обратите внимание, что в обоих случаях, если поле не существует в документе, оно будет создано.