如何根据文档ID检索集合中的单个属性值?

时间:2016-12-06 01:53:40

标签: meteor meteor-accounts

如何使用文档userId?

检索文档单个属性值

首先,我使用以下代码

返回文档_Id
Session.set('getUserId', Al.findOne({_id: Session.get('appealId')}));
console.log(Session.get('getUserId').userID);

我可以在控制台中看到userID已成功打印,现在我想使用userIDMeteor.users集合中检索另一个值。

这是我的代码:

Session.set('userDetails', Meteor.users.findOne({_id: Session.get('getUserId').userID}));
console.log(Session.get('userDetails').profile.annualLeave);

但它似乎不起作用,我在控制台中收到以下错误:

TypeError: Cannot read property 'profile' of undefined

我尝试将Session.get('userDetails').profile.annualLeave更改为Session.get('userDetails').username,我仍然收到同样的错误,告诉我username未定义

更新:

对于appealId会话,我使用它来存储路由器中项目的_Id。稍后使用它来检索userID(项目内的属性)。

以下是代码:

Router.route('/appeal/:_id', function(){
  Session.set("appealId", this.params._id);
  this.render("navbar", {to:"navbar"});
  this.render("appealDetails", {to:"main"});
});

1 个答案:

答案 0 :(得分:0)

错误消息表示

Session.get('userDetails')

未定义,这反过来意味着调用

Meteor.users.findOne({_id: Session.get('getUserId').userID})

必须没有返回任何内容

你不清楚这两段代码是如何相关的,你重复使用Session似乎很复杂。我甚至不知道为什么这行代码存在

console.log(Session.get('test').userID);

除非'测试'是你之前存储的东西