FindById 和 FindOne 不适用于我从 Angular 本地存储获得的 ID 或用户名
Posted
技术标签:
【中文标题】FindById 和 FindOne 不适用于我从 Angular 本地存储获得的 ID 或用户名【英文标题】:FindById & FindOne do not work on IDs or usernames that I get from Angular Local Storage 【发布时间】:2019-05-23 05:30:55 【问题描述】:我正在制作一个快递系统,其中一个特许经营商需要将包裹发送到另一个特许经营商。用户输入包裹需要去的特许经营的名称,我正在获取 ID 并存储在“dispatchedTo”中。当我从 Angular localStroage 获取“dispatchedBy”的 ID 时,我在用户(特许经营权)登录系统时保存了它。但是 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 保存 ID 为 'dispatchedBy' 和 'dispatchedTo' 的记录: "_id":"5c1fdcd0dc5ce60e8c856ca1","dispatchedBy":"5c1c06c2f458b617506f1ac1","dispatchedTo":"5c1de40419975e0a6c224d6a","dispatchedOn":"2018-12-23T19:03:50.997Z18-""receiveOn":" -23T19:03:50.997Z","packet":"5c1ea84ca706ba112c9dbe9e","dispatchStatus":"DisJanu","user":"Sohail","__v":0
但是,当我应用填充时,'dispatchedBy' 返回 null。
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】:所以findById
仅根据_id
字段进行过滤。你可以试试findOne
like
Franchise.findOne( dispatchedBy: req.body.dispatchedBy );
Franchise.findOne( dispatchedTo: req.body.dispatchedTo );
【讨论】:
忍无可忍!我也试过 findOne,返回 null。我正在从 localStorage 中获取 dispatchedBy,而 findOne、find 或 findbyId 无法与 dispatchedBy 一起使用。我试过这个:将用户的用户名和密码存储在 localStorage 中,然后尝试通过从 localStorage 中检索用户名和密码来进行身份验证,并且猫鼬再次找不到用户。一定是 Angular localStorage,我现在在扯头发。 嘿尼米什!我发现了问题。我以具有不同角色的用户身份登录:(我以管理员身份而不是特许经营权身份登录:(以上是关于FindById 和 FindOne 不适用于我从 Angular 本地存储获得的 ID 或用户名的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose 中的 Model.findOne() 和 Model.findById() 有啥区别?
更新 findOne()/find()/findById() 返回的文档 - mongoose
更新 findOne()/find()/findById() 返回的文档 - mongoose