首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >自定义用户采集是否有实现用户状态的meteor包?

自定义用户采集是否有实现用户状态的meteor包?
EN

Stack Overflow用户
提问于 2018-05-31 21:44:43
回答 2查看 64关注 0票数 0

是否有任何meteor包来实现自定义用户集合的用户状态,而不是默认的。我实现了"myUser“集合而不是默认的"meteor.user”集合,并且我想在其中添加status字段?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-03 06:35:32

如果你有一个自定义的集合,只需要在服务器端这样做:

代码语言:javascript
复制
export const myUser = new Mongo.Collection('myUser');

const userData = (userId) => {
  return myUser.find(userId);
}

现在,您将拥有一个可在服务器端访问所有用户字段的对象。要添加状态字段,在客户端上只需对用户执行的每个函数执行Meteor.call即可。(单击事件、提交到数据库等)

代码语言:javascript
复制
Meteor.methods({
  'userOnline'(userId) {
     myUser.update({_id:userId},{$set:{onlineDate:new Date()}})
  }
}

Meteor.call('userOnline', userId);

然后查询数据库中你想要的超时时间。最后n秒,分钟,小时。

代码语言:javascript
复制
query = {
    onlineDate: { // 18 minutes ago (from now)
        $gt: new Date(ISODate().getTime() - 1000 * 60 * 18)
    }
}
票数 0
EN

Stack Overflow用户

发布于 2018-05-31 22:16:31

您可以在服务器端将任何字段添加到user对象的根目录中,只要确保您订阅了客户端的发布即可,如下所示

代码语言:javascript
复制
/* eslint-disable prefer-arrow-callback */
import { Meteor } from 'meteor/meteor';

Meteor.publish('userExtraFields', function userExtraFields() {
  if (this.userId) {
    return Meteor.users.find(
      { _id: this.userId },
      { fields: { currentTeamId: 1, teams: 1, isAdmin: 1, isCreator: 1 } }
    );
  }
  return false;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50625813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档