не может передать идентификатор или элемент в параметры mon goose - PullRequest
2 голосов
/ 10 июля 2020

В MongoDB, используя mon goose - я попытался удалить элемент из коллекции, используя findByIdAndDelete(). Это выдает ошибку -

CastError: Cast to ObjectId failed for value "5f080dd69af4c61774ef447f " at path "_id" for model "Item"

My Mon goose Код -

app.post("/del", function (req, res) {
    const delItem = req.body.del;
    console.log(delItem);           // this one provides the exact id.
    Item.findByIdAndDelete(delItem, function (err) {
        if(err){
            console.log(err);
        }
        else{
            console.log("succesfully Deleted");            
        }
    })
})

Я пробовал find({}), он дает полные данные, но проблема возникает только тогда, когда я пытался присвоить ему значение, например

findById({"_id: delItem}) - он не работает

findById({"_id: "34324jj43j34"}) - если я ввожу вручную, это работает,

Я изменил содержимое delItems на один элемент в нем, тогда

find({item: delItem}) - не работает

find({item: "item 1"}) - работает

1 Ответ

1 голос
/ 10 июля 2020

Проблема в том, что ваш delItem содержит завершающий пробел, который вызывает эту проблему: "5f080dd69af4c61774ef447f " - это должно быть "5f080dd69af4c61774ef447f".

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

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