java - Mongodb:查找嵌入数组中的最低元素

标签 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。

最佳答案

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

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

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

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

关于java - Mongodb:查找嵌入数组中的最低元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16812976/

相关文章:

Java 运营商有趣的问题

node.js - 无法将dockerized keystone 容器与dockerized mongo 容器连接

python - 如何仅对列表中的正数进行排序?

C++ 多维排序

java - JFrame:如何添加一个向框架添加新文本字段的按钮?

java - Swing 组件中的 HTML 格式文本不显示

java - 如何在 MongoDb 中插入带点字段的嵌入文档

c - 如何用 C 创建迷你基准程序

java - 检查 Url 是指文件还是目录。 (HTTP)

node.js - 如何使用 Node.js 将对象数组正确转换为 CSV 文件?