流星:我如何才能显示只有具有该字段且活跃的用户提出的问题'

时间:2015-06-13 16:44:26

标签: performance mongodb meteor

我正在构建一系列各种各样的...我正在努力清理我的网站。目前,如果用户删除其个人资料,他们的问题仍然存在,并且不会显示任何用户。我正在尝试将其链接到用户。

我做的是在用户数据库中添加了一个字段,该字段从“活动”变为“非活动”(没有删除)。

所以我的问题是如何查询mongo以便我只能显示具有“活跃”的用户的问题。用户数据库上的标记。

我不知道如何进行跨数据库查询。这是正确的方法,如果是这样,那怎么可能?

谢谢!

1 个答案:

答案 0 :(得分:1)

您有两种选择,但最简单的方法是在作者处于非活动状态时将问题标记为非活动状态。这是一个示例deleteUser方法:

Meteor.methods({
  deleteUser: function() {
    // mark the user as inactive
    Meteor.users.update(this.userId, {$set: {isInactive: true}});

    // mark the user's questions as inactive
    Questions.update(
      {author: this.userId},
      {$set: {isInactive: true}},
      {multi: true}
    );
  }
});

由于有关非活动作者的数据已经传播到Questions集合,因此您的发布函数可能如下所示:

Meteor.publish('activeQuestions', function() {
  // only return active posts
  return Questions.find({isInactive: {$ne: true}});
});