кодесурса
«MongoDB

Оператор обновления полей MongoDB - $ rename

script1adsense2code
script1adsense3code

Описание

Оператор $ 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 не существует в документе, поэтому эта операция ничего не будет делать. Таким образом, если мы хотим переименовать несколько полей и если все эти поля не существуют в документе, операция ничего не будет делать.

Предыдущая: $ inc
Далее: $ set

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code