Оператор обновления полей MongoDB - $ rename
Описание
Оператор $ rename используется для обновления имени поля. Необходимо упомянуть, что новое имя поля отличается от существующего имени поля.
Синтаксис:
{$ rename: {<old_name1>: <new_name1>, <old_name2>: <new_name2>, ...}}
Параметры:
название | Описание |
---|---|
old_name1, old_name2 | старое название столбцов или полей |
new_name1, new_name2 | новое имя столбца или поля |
Имя нашей базы данных - «myinfo», а имя нашей коллекции - «employee». Вот коллекция ниже.
Коллекция образцов "Сотрудник"
{
"_id" : 2,
"emp_id" : 1232,
"pinfo" : {
"empfname" : "Robart",
"emplname" : "Bolt"
},
"phno" : "123-123-1235",
"emale" : "[email protected]",
"offinfo" : [
"administration",
"MD"
]
}
}
Пример оператора обновления поля - $ rename
Если мы хотим изменить имя поля offinfo на service_details и emale для отправки по электронной почте, можно использовать следующий оператор mongodb:
> db.employee.update( { emp_id: 1232 }, { $rename: { 'offinfo': 'service_details', 'emale': 'email' } } );
Чтобы увидеть обновленный вывод -
> db.employee.find (). pretty ();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
Вывод команды:
{ "_id": 2, "электронная почта": " [электронная почта защищена] ", "emp_id": 1232, "phno": "123-123-1235", "Пинфо": { "empfname": "Robart", "emplname": "Болт" }, "service_details": [ «Администрация», "MD" ] }
Пример $ rename для переименования вложенного документа
Если мы хотим переименовать pinfo вложенного документа, можно использовать следующие запросы mongodb:
> db.employee.update( { emp_id: 1232 }, { $rename: { 'pinfo': 'personal'} } );
Чтобы увидеть обновленный вывод -
> db.employee.find (). pretty ();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
Вывод команды:
{ "_id": 2, "электронная почта": " [электронная почта защищена] ", "emp_id": 1232, "личный": { "empfname": "Robart", "emplname": "Болт" }, "phno": "123-123-1235", "service_details": [ «Администрация», "MD" ] }
Пример оператора $ rename для переименования поля во вложенном документе
Если мы хотим переименовать поле empfname в fname в личном поддокументе, можно использовать следующую команду mongodb:
> db.employee.update( { emp_id: 1232 }, { $rename: { "personal.empfname": "personal.fname"} } );
Здесь в вышеприведенном примере, чтобы переименовать поле empfname в личном поддокументе, оператор $ rename использовался с точечной нотацией, чтобы гарантировать, что поле остается в поддокументе.
Чтобы увидеть обновленный вывод -
> db.employee.find (). pretty ();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
Вывод команды:
{ "_id": 2, "электронная почта": " [электронная почта защищена] ", "emp_id": 1232, "личный": { "emplname": "Болт", "fname": "Robart" }, "phno": "123-123-1235", "service_details": [ «Администрация», "MD" ] }
Пример оператора $ rename для переименования поля и его перемещения в другой поддокумент
Если мы хотим переименовать поле emplname в last_name личного документа и переместить его из личного документа, можно использовать следующую команду mongodb:
> db.employee.update( { emp_id: 1232 }, { $rename: { "personal.emplname": "pinfo.last_name"} } );
Здесь в вышеприведенном примере, чтобы переименовать поле emplname в личном поддокументе, оператор $ rename использовался с точечной нотацией, чтобы гарантировать, что поле остается в поддокументе, и эта операция переименовывает поле emplname поддокумента в last_name и перемещает его в пинфо вложенного документа.
Если имя нового вложенного документа не включено в новое имя поля, оно становится обычным полем документа.
Чтобы увидеть обновленный вывод -
> db.employee.find (). pretty ();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
Вывод команды:
{ "_id": 2, "электронная почта": " [электронная почта защищена] ", "emp_id": 1232, "личный": { "fname": "Robart" }, "phno": "123-123-1235", "Пинфо": { "last_name": "Болт" }, "service_details": [ «Администрация», "MD" ] }
Пример:
Во время переименования поля, если поле не существует в документе, операция переименования ничего не сделает.
Вот пример -
> db.employee.update( { emp_id: 1232 }, { $rename: { "city": "town"} } );
Здесь, в приведенном выше примере, мы хотим переименовать поле city в city, но поле city не существует в документе, поэтому эта операция ничего не будет делать. Таким образом, если мы хотим переименовать несколько полей и если все эти поля не существуют в документе, операция ничего не будет делать.
Новый контент: Composer: менеджер зависимостей для PHP , R программирования