是否可以在流星中创建自定义mongodb游标?

时间:2012-06-08 05:32:26

标签: mongodb meteor

我有学生系列和人物收藏。 Person包含字段:名称,地址等 学生包含:rollno,以及存储此学生的person._id的人员字段

现在我想在学生模板中显示学生的姓名,但请注意学生中没有name字段,我需要从该学生的个人文档中获取该字段。

有没有办法在客户端获取具有学生信息的mongodb光标以及该学生的个人文档中的选择性字段?

此外,是否有更好或更标准的方法来实现我想要实现的目标?

注意:我不想使用冗余并将name字段存储在Student文档中,因此这不是解决方案

3 个答案:

答案 0 :(得分:2)

  

是否有更好或更标准的方式来实现我正在努力的目标   实现

听起来您正试图在一次阅读中阅读有关学生的所有信息 - 唯一的方法就是将所有信息都放在一个文档中。

文档数据库的灵活模式允许您在单个集合中包含文档,这些文档不需要具有相同的模式,即字段数。

所以我建议您考虑为什么实际上需要为个人和学生提供单独的集合 - 这会导致在添加学生时写入两个集合(而单个写入是原子的,两个写入不是)并且它也会导致您现在遇到的问题,您需要进行两次单独的阅读以获取有关学生的所有信息。

SO question与您的情况有些相关。

答案 1 :(得分:0)

我会将您的代码更改为在Person对象中具有角色/作业属性。 它至少对我来说是语义上的,并且考虑到原来方法中改变工作的人的难度水平与仅仅改变角色。

然后你可以搜索

Persons.find {role: 'student'}

这与拥有学生对象完全相似。

正如Asya所说,学生们可以拥有其他人所拥有的额外领域。

答案 2 :(得分:0)

请参阅此主题中接受的答案:

Possible bug when observing a cursor, when deleting from collection

它涉及使用标题为_publishCursor的内置publishModifiedCursor的修改版本,它允许您指定回调以向要发布的游标中的每个文档添加属性。