我的'程序'集合看起来像这样(作为数组);
[{ FullName: "Jane Doe", CampYear: "mays15",...}, { FullName "Jane Doe", CampYear: "mays16",...},...]
集合中的某些人是新手,并且集合中只有一个文档。其他人有多个文件,是返回者。我们希望能够以某种方式标记或标记新手。以某种方式遍历集合并挑出那些只有一个文档的人。麻烦的是,如果我有一个150个名字的列表,对于每个名称,我必须对集合进行单独的查找操作,这太过于密集。
我尝试通过meteorhacks使用聚合:聚合但无法使其工作。加载包后,我的IDE根本无法识别.aggregate方法,即使在服务器上也是如此。
下划线可能是一种有价值的方式,但我找不到可能有帮助的方法。
我们如何才能做到这一点?
答案 0 :(得分:1)
根据您的评论,我可能会对您的数据进行反规范化。我有一个名为CampAttendance
的新集合或类似的东西。然后你就拥有了这个结构:
{
"name": "The camper's name",
"years": ["mays2015", ...]
}
然后,您可以使用upsert
在您输入数据时在年份数组中插入新记录或$push
另一个阵营年份。
获取“新手”的露营者姓名'然后,你做:
CampAttendance.find({ years: { $size: 1 } });