Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mongodb中特定文档的数组内搜索_Mongodb - Fatal编程技术网

在mongodb中特定文档的数组内搜索

在mongodb中特定文档的数组内搜索,mongodb,Mongodb,我收集了以下类型的文档(为熟悉起见,从中获取): 如果我已经有Jane的文件,那么检索她的成绩(例如数学)的最佳方法是什么 我能在文档中找到的唯一指导是查找,例如,所有数学成绩为A的学生,但在本例中,我已经有了要查询的学生文档 我看到的访问数组的唯一方法是通过数组索引,例如分数[0].grade,但我不一定知道数组索引 谢谢 编辑:我知道我可以简单地在数组中循环找到正确的条目,但我想知道是否有更好的方法。不幸的是,在MongoDB中没有直接的方法来执行这种类型的查询。新的$slice操作符将帮助

我收集了以下类型的文档(为熟悉起见,从中获取):

如果我已经有Jane的文件,那么检索她的成绩(例如数学)的最佳方法是什么

我能在文档中找到的唯一指导是查找,例如,所有数学成绩为A的学生,但在本例中,我已经有了要查询的学生文档

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

谢谢


编辑:我知道我可以简单地在数组中循环找到正确的条目,但我想知道是否有更好的方法。

不幸的是,在MongoDB中没有直接的方法来执行这种类型的查询。新的$slice操作符将帮助您限制返回的分数数量,但显然,这只有在您知道所需课程的位置时才有用

我问了一个关于Mongo Google Group的类似问题


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

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

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