在MongoDB中查找嵌入数组中的元素

时间:2014-04-03 07:08:56

标签: mongodb

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

{
    "_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 :(得分:-1)

请尝试以下操作 -

x = db.students.aggregate([{
    "$unwind": "$scores"
}, {
    "$match": {
        "scores.type": "homework"
    }
}, {
    "$group": {
        "_id": "$_id",
        "minscore": {
            "$min": "$scores.score"
        }
    }
}])

您的结果文档“x”包含一个数组字段 - 文档中的最低分数