Update поля в документе MongoDB

178
21 марта 2018, 06:55

Выполняю урок по видео https://www.youtube.com/watch?v=el24xavOeWs , на 1:26 такой код обновления поля name:

app.put('/artists/:id', function(req, res) {
    db.collection('artists').updateOne(
        { _id: ObjectID(req.params.id) },
        { name: req.body.name },
        function (err, result) {
            if (err) {
                console.log(err);
                return res.sendStatus(500);
            }
            res.sendStatus(200);
        }
    );
});

Код не сработал. Почитав документацию по MongoDB изменил код следующим образом:

app.put('/artists/:id', function(req, res) {
    db.collection('artists').update(
        { _id: ObjectID(req.params.id) },
        { $set: { name: req.body.name } },
        {
            upsert: false,
            multi: false
        },
        function (err, result) {
            if (err) {
                console.log(err);
                return res.sendStatus(500);
            }
            res.sendStatus(200);
        }
    );
});

Когда через дополнение браузера RESTED отправляю непустой запрос PUT на любой существующий адрес, например, http://localhost:3012/artists/5ab0e28867723c66e0c50afc, то значение name документа с ObjectID 5ab0e28867723c66e0c50afc становится равным null, хотя я отправляю непустую строку. Код ответа при этом - 200. Что нужно изменить в коде, чтобы он заработал и поле нормально обновлялось?

P.S. Когда перед в предыдущем уроке через RESTED работал с массивом, а не с БД, обновлялось всё нормально, т.е. ошибка не в том, что я не могу нормально послать запрос через RESTED.

Answer 1

Вывел console.log(req.body.name);, он оказался пустым, как и console.log(req.body);. Добавил ещё 2 параметра в JSON запрос в RESTED, все 3 параметра, включая name, нормально пришли и отобразились в console.log(req.body);. После этого всё нормально приходило из RESTED и без замечаний заносилось в БД. Ошибка была в работе RESTED.

READ ALSO
Сравнение значений через js?

Сравнение значений через js?

Нужна функция, которая проверяет наличие товара из существующих данных это цвет, размер и количество Размер:

155
дублируються данные когда передаю в json

дублируються данные когда передаю в json

у меня есть n количество табов, с которых нужно собрать данные но проблема в том что если в первом у нас doc 1, doc 2, а во втором doc 3, doc 4 - То результат...

166
Проверка на символы

Проверка на символы

Как прoверить, есть ли в input type="text" определенные символы с помощью js, например, мне надо проверить, присутствует ли символ @ в значении, которое...

196