findOneAndUpdate не работает в mongodb / nodejs - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь обновить запись в mongodb с помощью nodejs, но она не работает. Я получаю данные на другой стороне, и все, кажется, работает, но просто не обновляет запись.

МойКод серверной стороны

 console.log('here',req.params.userId )
  User.findOneAndUpdate({ _id: req.params.userId }, {$set:req.body}, { new: true }, function (err, users) {
    if (err)
        res.send(req.params.userId);
res.json(users);
});

Возвращает нулевое значение, я не знаю почему. Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 27 октября 2019

Вы можете сделать это так:

User.findOneAndUpdate(
  { _id: new ObjectId(req.params.userId) },
  ...req.body,
  { new: true }
)
0 голосов
/ 27 октября 2019

Это потому, что ObjectId () Монго был представлен как строка в req.body:

, сделайте это:


console.log('here',req.params.userId )

User.findOneAndUpdate({ _id: new ObjectId(req.params.userId) }, {$set:req.body}, { new: true }, function (err, users) {
    if (err) res.send(req.params.userId);

    res.json(users);
});

Вы можете требовать ObjectId из пакета bson, так как я работаю с TypeScriptЯ использую импорт import { ObjectId } from 'bson'; в чистом JavaScript должен быть import ObjectId = require('bson');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...