Оператор обновления поля MongoDB - $ set
Описание
В MongoDB оператор $ set используется для замены значения поля указанным значением. Если данное поле не существует в документе, оператор $ set добавит поле к указанному значению.
Синтаксис:
{$ set: {<field1>: <value1>, ...}}
Параметры:
название | Описание |
---|---|
field1 | поле, значение которого будет изменено |
value1 | новое значение для поля |
Имя нашей базы данных - «myinfo», а имя нашей коллекции - «employee». Вот коллекция ниже.
Коллекция образцов "Сотрудник"
{
"_id" : 1,
"emp_id" : 1231,
"pinfo" : {
"empfname" : "Alen",
"emplname" : "Jones"
},
"phno" : "123-123-1234",
"email" : "[email protected]",
"sector" : 2,
"offinfo" : [
"manager",
"sales"
]
}
{
"_id" : 2,
"emp_id" : 1232,
"pinfo" : {
"empfname" : "Robart",
"emplname" : "Bolt"
},
"phno" : "123-123-1235",
"email" : "[email protected]",
"sector" : 3,
"offinfo" : [
"administration",
"MD"
]
}
Пример оператора MongoDB $ set для обновления первого соответствующего документа
Если мы хотим изменить содержимое поля электронной почты для этого сотрудника с идентификатором 1231, можно использовать следующий оператор mongodb:
>db.employeeset.update( { emp_id: 1231 },{ $set: {"email": "[email protected]"}});
Чтобы увидеть обновленный вывод -
> db.employee.find (). pretty ();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
Вывод команды
{ "_id": 1, "электронная почта": " [электронная почта защищена] ", "emp_id": 1231, "offinfo": [ "менеджер", "продажи" ], "phno": "123-123-1234", "Пинфо": { "empfname": "Ален", "emplname": "Джонс" }, "сектор": 2 } { "_id": 2, "emp_id": 1232, "Пинфо": { "empfname": "Robart", "emplname": "Болт" }, "phno": "123-123-1235", "электронная почта": " [электронная почта защищена] ", "сектор": 3, "offinfo": [ «Администрация», "MD" ] }
Пример оператора MongoDB $ set для обновления всего соответствующего документа
Если мы хотим обновить значение «block» на «E» для всех тех документов, которые соответствуют условному сектору, большему чем 2, можно использовать следующие запросы mongodb:
>db.employeeset.update( { "sector":{$gte:2} },{ $set: {"block": "E"}},{multi : true});
Здесь, в приведенном выше примере, «multi: true» используется для выполнения обновлений для всего соответствующего документа, и важно отметить, что поле «блок» не существует в документе , поэтому блок «новое поле» "добавил со значением" E "в документе.
Чтобы увидеть обновленный вывод -
> db.employee.find (). pretty ();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
Вывод команды:
{ "_id": 2, «блок»: «Е», "электронная почта": " [электронная почта защищена] ", "emp_id": 1232, "offinfo": [ «Администрация», "MD" ], "phno": "123-123-1235", "Пинфо": { "empfname": "Robart", "emplname": "Болт" }, "сектор": 3 } { "_id": 1, «блок»: «Е», "электронная почта": " [электронная почта защищена] ", "emp_id": 1231, "offinfo": [ "менеджер", "продажи" ], "phno": "123-123-1234", "Пинфо": { "empfname": "Ален", "emplname": "Джонс" }, "сектор": 2 }
Предыдущая: $ переименовать
Далее: $ setOnInsert
Новый контент: Composer: менеджер зависимостей для PHP , R программирования