Как переместить встроенные поля из встроенного документа? - PullRequest
0 голосов
/ 30 июня 2018

Вот пример одного из моих документов JSON:

{
    "_id": 1,
    "SongId": 1,
    "Details": {
        "Artist": "Cyndi Lauper",
        "Album": "She's So Unusual",
        "ReleaseYear": 1983
    },
    "SongTitle": "Girls Just Want To Have Fun"
}

Как написать запрос для перемещения местоположения "Artist" и его значения из "Details" документа, оставив "Album" и "ReleaseYear" по-прежнему встроенными ,

1 Ответ

0 голосов
/ 30 июня 2018

В дополнение к обновлению имени поля оператор $rename может использоваться для перемещения полей из (или во) встроенных документов.

При работе с полями во встроенных документах необходимо использовать точечная нотация для ссылки на имя поля.

Если имя коллекции discography, вы можете переместить поле Details.Artist, используя:

db.discography.update(
    {_id: 1},
    {$rename: { "Details.Artist": "Artist"}}
)

Пример результата:

> db.discography.findOne({_id: 1})
{
    "_id" : 1,
    "SongId" : 1,
    "Details" : {
        "Album" : "She's So Unusual",
        "ReleaseYear" : 1983
    },
    "SongTitle" : "Girls Just Want To Have Fun",
    "Artist" : "Cyndi Lauper"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...