Java Mongodb:在嵌入式数组中查找最低元素
我收集了一批学生,他们的样子如下:Java Mongodb:在嵌入式数组中查找最低元素,java,mongodb,sorting,arraylist,Java,Mongodb,Sorting,Arraylist,我收集了一批学生,他们的样子如下: { "_id" : 10, "name" : "Christiano Ronaldo", "scores" : [ { "type" : "exam", "score" : 40.58945534169687 }, { "type" : "quiz
{
"_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聚合框架可以用来回答您的问题,但我假设这超出了本文的范围
还要注意,您的模式是非常有问题的。无法使用此模式查询特定的“家庭作业”分数。我将在这里进行非规范化,并在每个分数上使用一个文档。您不需要正常的查询。您总是查询完整文档,而不是该文档中的嵌入元素。如果您为每个分数制作单独的文档,例如:
{
"_id" : 10,
"name" : "Christiano Ronaldo",
"type" : "exam",
"score" : 40.58945534169687
}
您可以搜索克里斯蒂亚诺·罗纳尔多的最高/最低考试分数。请注意,MongoDB聚合框架可以用来回答您的问题,但我假设这超出了本文的范围
还要注意,您的模式是非常有问题的。无法使用此模式查询特定的“家庭作业”分数。我会在这里进行非规范化,并使用每个分数的文档。顺便说一句,很多人都在为这个特定数据模型的问题而挣扎,这不可能是巧合。新的家庭作业?;)大多数新手都在苦苦挣扎。是的,这是一项任务;)顺便说一句,很多人都在为这个特殊的数据模型的问题而挣扎,这不可能是巧合。新的家庭作业?;)大多数新手都在苦苦挣扎。是的,这是一项任务;)为了解决赋值问题,对模式进行非规范化不是一个好主意,因为为了验证我的答案,我必须对我以前的结果运行一个特定的聚合函数。您能在原始问题中添加预期结果应该是什么吗?你说“找最低限度的家庭作业”,那是什么意思?整个集合中作业最少的文档或文档中作业最少的数组元素?是否可以使用$elemMatch获取类型:“作业”?例如,从shell:db.students.find({},{scores:{$elemMatch:{type:'combiness'}}}})来解决作业,对模式进行非规范化不是一个好主意,因为为了验证我的答案,我必须对我以前的结果运行一个特定的聚合函数。你能在原始问题中添加预期结果应该是什么吗?你说“找最低限度的家庭作业”,那是什么意思?整个集合中作业最少的文档或文档中作业最少的数组元素?是否可以使用$elemMatch获取类型:“作业”?例如来自shell:db.students.find({},{scores:{$elemMatch:{type:'combiness'}})