FindOne NODEJS mongoDB - PullRequest
       0

FindOne NODEJS mongoDB

0 голосов
/ 24 апреля 2020

У меня есть этот код, который проверяет, является ли предоставленный токен действительным или нет, код работает, но проблема в том, что он возвращает неправильный идентификатор, => он возвращает первый идентификатор, который он нашел в базе данных

код, который я использую, это

const checkToken = async (req, res ,next) => {
    const token= req.body.token //the token is mix of number and letters lenght (6)

    User.findOne(token, 
        (err, user)  => {
            if (err) {
                const error = new Error('Token not Found');
                error.status= 406;
                return next(err, error);

           }else
            {
            res.send('/api/users/'+ user.id +'/update') // u need to mention user.id from DB

            }       

})

это мой образ базы данных:

enter image description here

Я не хочу использовать идентификатор для поиска токена, я хочу использовать предоставленный токен и искать в БД, если он найден, поэтому я получаю Id

1 Ответ

0 голосов
/ 24 апреля 2020

Согласно документации MongoDB, это обычное поведение метода findOne. Когда несколько документов удовлетворяют условию, функция возвращает первый документ, который написан первым. Ссылка

Чтобы проверить, используйте find () и посмотрите все документы, которые он возвращает для правильного идентификатора, и используйте findOne, убедитесь, что токен уникален для всего документа.

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