在Meteor集合中列出具有重复名字的文档

时间:2016-02-15 16:12:35

标签: mongodb meteor

我的'程序'集合看起来像这样(作为数组);

[{ FullName: "Jane Doe", CampYear: "mays15",...}, { FullName "Jane Doe", CampYear: "mays16",...},...]

集合中的某些人是新手,并且集合中只有一个文档。其他人有多个文件,是返回者。我们希望能够以某种方式标记或标记新手。以某种方式遍历集合并挑出那些只有一个文档的人。麻烦的是,如果我有一个150个名字的列表,对于每个名称,我必须对集合进行单独的查找操作,这太过于密集。

我尝试通过meteorhacks使用聚合:聚合但无法使其工作。加载包后,我的IDE根本无法识别.aggregate方法,即使在服务器上也是如此。

下划线可能是一种有价值的方式,但我找不到可能有帮助的方法。

我们如何才能做到这一点?

1 个答案:

答案 0 :(得分:1)

根据您的评论,我可能会对您的数据进行反规范化。我有一个名为CampAttendance的新集合或类似的东西。然后你就拥有了这个结构:

{
  "name": "The camper's name",
  "years": ["mays2015", ...]
}

然后,您可以使用upsert在您输入数据时在年份数组中插入新记录或$push另一个阵营年份。

获取“新手”的露营者姓名'然后,你做:

CampAttendance.find({ years: { $size: 1 } });