2010-08-05 70 views
0

特定文档内阵列中的搜索,我有以下类型的文件(从Mongo DB Docs: Schema Design采取的熟悉)的集合:MongoDB中

db.students 
{ name: 'Jane', 
    scores: [ 
       { course: 'math', grade: 'A'}, 
       { course: 'biology', grade: 'B'}, 
       { course: 'english', grade: 'C'} 
      ] 
} 

如果我已经有简的文档,什么是最好的方法找回她的成绩例如数学?

我在文档中找到的唯一指导是关于查找,例如,所有A级数学的学生,但在这种情况下,我已经有了我想查询的学生文档。

我看到访问数组的唯一方法是通过数组索引,例如, score [0] .grade,但我不一定知道数组索引。

感谢

编辑:我知道我可以简单地循环遍历数组以找到正确的进入,但我不知道是否有一个更好的办法。

回答

0

如果您使用的是2.2版本的MongoDB,您可以使用“匹配”聚合函数:

有关更多详细信息,请参阅here