使用联接来查找用户

时间:2016-04-23 13:40:24

标签: javascript mongodb meteor

我正在我的应用中构建一个收件箱部分。只有两方,演员和客户才能进行对话。

在收件箱页面上,我找到所有'对话'文档,其中clientId $或actorId字段与Meteor.userId()的字段匹配

因此,游标返回符合此条件的文档,这是预期的。假设我以演员的身份登录,并且我与5个不同的客户进行了对话,这5个对话文档将被发送给客户。

如何获取这些对话文档的5个不同clientId并创建订阅以仅返回那些用户对象?

我想要这样做的原因是显示用户个人资料图片,名称并通过他们的个人资料页面提供链接。

这是我的代码:

公开

    Meteor.publish('Conversations', function() {
  return Conversations.find({$or: [{'clientId': this.userId}, {'actorId': this.userId}]});
});

路线/认购

// Inbox
  Router.route('/inbox', {
    name: 'inbox',
    waitOn: function() {
      return [Meteor.subscribe('Messages', this.params._id), Meteor.subscribe('Conversations')]
    }
  });

1 个答案:

答案 0 :(得分:0)

我没有测试过这些技术,但我相信你正在研究其中的一种技术。

  1. 使用$lookup aggregation(这使得基于2的歌曲集合)
  2. db.small_collection.find()。的forEach(函数(OBJ){ db.big_collection.find(OBJ) });