NodeJS с MongoDb: удаление подполя в документе - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть объект JSON, который хранится в такой коллекции:

[
    {
        "username":"j",
        "pass":"t",
        "tracking":
        {
            "bettercallsaul":["1x1","1x2","1x3"]
        }
     }
]

Я хочу удалить поле "bettercallsaul" внутри поля "отслеживания".

Я попытался провести такую ​​строку:

collection.updateOne({ "username" : req.session.username }, { $unset : { "tracking" : { showname : 1 } } });

И ему удалось только удалить всю запись отслеживания, а не только запись лучшего вызова. Можно ли удалить это подполе?

edit: Забыл упомянуть, как должен выглядеть мой ожидаемый результат:

[ { "username":"j", "pass":"t", "tracking": {} } ]

1 Ответ

0 голосов
/ 29 апреля 2018

Вы можете сделать это, используя $set и установив пустой объект:

db.collection.updateOne({ "username" : req.session.username }, { $set : { "tracking" : { } } });

В качестве альтернативы вы можете использовать точечную запись, чтобы удалить только одно подполе:

db.collection.updateOne({ "username" : req.session.username }, { $unset : { "tracking.bettercallsaul" : 1 } });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...