Mongodb:在嵌入式数组中找到最低元素

时间:2013-05-29 11:44:09

标签: java mongodb sorting arraylist

我有一个系列学生看起来像这样:

{
    "_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
            }
    ]

}

我如何找到最低的作业?使用javadriver。

1 个答案:

答案 0 :(得分:3)

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

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

您可以搜索Christiano Ronaldo的最高/最低考试成绩。请注意,MongoDB聚合框架可用于回答您的问题,但我将假设这不在此范围内。

另请注意,您的架构存在问题。无法使用此架构查询特定的“作业”分数。我会在这里进行非规范化并按分数使用文档。