0

我有一个学生的集合是这样的:

{
    "_id" : 10,
    "name" : "Christiano Ronaldo",
    "scores" : [
            {
                    "type" : "exam",
                    "score" : 40.58945534169687
            },
            {
                    "type" : "quiz",
                    "score" : 4.30461571152303
            },
            {
                    "type" : "homework",
                    "score" : 62.36309025722009
            },
            {
                    "type" : "homework",
                    "score" : 32.1707802903173
            }
    ]

}

如何找出最低的作业?使用 java 驱动程序。

4

1 回答 1

3

你没有正常的查询。您总是查询完整的文档,而不是该文档中的嵌入元素。如果您为每个分数制作单独的文件,例如:

{
    "_id" : 10,
    "name" : "Christiano Ronaldo",
    "type" : "exam",
    "score" : 40.58945534169687
}

您可以搜索克里斯蒂亚诺·罗纳尔多的最高/最低考试成绩。请注意,MongoDB 聚合框架可用于回答您的问题,但我假设这超出了这里的范围。

另请注意,您的架构非常有问题。无法使用此模式查询特定的“作业”分数。我会在这里非规范化并使用每个分数的文档。

于 2013-05-29T12:07:37.700 回答