FindById и FindOne не работают с идентификаторами или именами пользователей, полученными из Angular Local Storage - PullRequest
0 голосов
/ 23 декабря 2018

Я создаю курьерскую систему, в которой одна франшиза должна отправить пакет другой франшизе.Пользователь вводит название франшизы, которую должен получить пакет, и я получаю ID и сохраняю в «dispatchedTo».Пока я получаю идентификатор «dispatchedBy», из Angular localStroage, где я сохранил его, когда пользователь (Franchise) вошел в систему.Но findById, findOne или даже find не работают при применении к атрибутам, извлеченным из localStorage.

    //This Part Does not return franchise... franchise object is empty
    let franchise = await Franchise.findById(req.body.dispatchedBy);
        if(!franchise){
            return res.json({error: {message: "Origin Not Found!"},});
        }
    //This part work... franchise1 is the right object
        let franchise1 = await Franchise.findById(req.body.dispatchedTo);
        if(!franchise1){
            return res.json({error: {message: "Destination Not Found!"},});
        }

MongoDB сохраняет запись с идентификатором обоих 'dispatchedBy' & 'dispatchedTo': {"_id": "5c1fdcd0dc5ce60e8c856ca1" "dispatchedBy": "5c1c06c2f458b617506f1ac1", "dispatchedTo": "5c1de40419975e0a6c224d6a", "dispatchedOn": "2018-12-23T19: 03: 50.997Z", "receivedOn":" 2018-12-23T19: 03: 50.997Z"," packet ":" 5c1ea84ca706ba112c9dbe9e "," dispatchStatus ":" DisJanu "," user ":" Sohail "," __v ": 0}

Однако, когда я применяю populate, 'dispatchedBy' возвращает ноль.

router.get('/', async(req, res)=>{
const dispatch = await Dispatch.find().sort('dispatchedOn').populate('packet', 'packetNumber _id').populate('dispatchedBy', 'title _id').populate('dispatchedTo', 'title _id');
return res.json(dispatch);

});

Возможно ли исправить?

1 Ответ

0 голосов
/ 24 декабря 2018

Так что findById просто фильтрует только на основе поля _id.Вы можете попробовать findOne как

Franchise.findOne({ dispatchedBy: req.body.dispatchedBy });
Franchise.findOne({ dispatchedTo: req.body.dispatchedTo });
...