2015-10-13 37 views
0

我是MongoDB中的新成员,我试图做一种“配置文件/评论”模块。我将这两个实体保存到两个不同的集合中,因为我读到了有很多嵌套元素的限制(在这种情况下,评论会增长很多)。如何将用户信息加入评论集? (配置文件/审查案例)

我的模式是:

评论:

{ 
    "_id" : ObjectId("56073ea299f4ebd05df813a8"), 
    "rate" : "0", 
    "owner" : "xub32YLjc4xJa38aM", 
    "to" : "8zqCPbkwYMfajyFQx", 
    "createdAt" : ISODate("2015-09-27T00:56:02.328Z") 
} 

其中:

  • :可以是0或1(坏事,也是好事,简单)
  • 业主:发表评论的用户ID
  • :个人资料的ID作出检讨

简介:

{ 
    "_id" : "8zqCPbkwYMfajyFQx", 
    "CI" : "19", 
    "firstName" : "Alan", 
    "lastName" : "Brito Delgado", 
    "gender" : "m", 
    "bio" : "lorem ipsum haha a bio right here pls", 
    "birthdate" : ISODate("2015-09-26T01:54:46.687Z"), 
    "specialty" : "Medico generalshhh", 
    "worksIn" : "Integramedica", 
    "academicInformation" : "Medicia UC 2010", 
    "avatar_url" : "img/doctor-1.png", 
    "certified" : false 
} 

其中: - CI,专业,WorksIn,AcademicInformation和认证是我使用的字段过滤器配置文件

我的问题是,我想做一个“排名视图”,人们可以添加过滤器来查看排名基于他们的过滤器,并且,我不知道如何加入关于个人资料和评论的信息。 (排名依据的评价不错计)

我如何知道通过轮廓分组“好”的评论数的方法,但是,我不知道如何追加“轮廓”信息:

db.reviews.group({ 
    key: {to:1}, 
    cond: {rate:"1"}, 
    reduce: function(curr, result){ 
     result.count++; 
    }, 
    initial: { count: 0 } 
}) 

例用样品 enter image description here

这可能与我目前的模式?或者我需要嵌入配置文件与评论或追加用户审查? (用第二种方法,我想我会拥有用户信息不日期)

PS:我复习情景模式,而非用户的话,用户是不同于型材

回答

0

普遍的共识是,如果你不需要被动地发布,在客户端进行加入。然而,流星的目的是构建反应式应用。

你看过关系发布吗? https://github.com/svasva/meteor-publish-with-relations

你想要的东西,如:

Meteor.publish('rating', function(id) { 
    Meteor.publishWithRelations({ 
     handle: this, 
     collection: ratings, 
     filter: id, 
     mappings: [{ 
     key: '_id', 
     collection: Meteor.profiles 
     }, { 
     reverse: true, 
     key: '_id', 
     collection: Comments, 
     filter: { approved: true }, 
     options: { 
      limit: 10, 
      sort: { createdAt: -1 } 
     }, 
     mappings: [{ 
      key: '_id', 
      collection: Meteor.profiles 
     }] 
     }] 
    }); 
    }); 

参见与反应https://atmosphere.meteor.com/package/reactive-publish

最后,对于流星巨大的资源和电子书值得购买https://www.discovermeteor.com/

PS发布 - 我以为你给予标签的流星答案。如果你想要纯mongodb然后上面可能不会帮你

+0

我查看你建议的包,但第一个,是3岁,似乎并没有在这3年的任何活动,所以,我认为它将无法正常工作):(在本模块中没有必要使用响应式响应)@brianlmerritt – FxckDead

+0

可能不是那么好:)看看http://meteor.hromnik.com/blog/joins-in-meteorjs-and-mongodb,也在github上https://github.com/Elfoslav/meteor-join-collections – brianlmerritt

+0

ps - 对不起,我现在停留了一段时间,但可能设置了一个meteorpad?这就像一个jsfiddle或codepen http://meteorpad.com/ – brianlmerritt