嗨,我是mongodb的新手,当有两个条件需要满足时我很困惑
这两个条件是: 最低分和类型应该是家庭作业
这是我的架构设计:
"_id" : 0,
"name" : "aimee Zank",
"scores" : [
{
"type" : "exam",
"score" : 1.463179736705023
},
{
"type" : "quiz",
"score" : 11.78273309957772
},
{
"type" : "homework",
"score" : 6.676176060654615
},
{
"type" : "homework",
"score" : 35.8740349954354
}
]
}
我打算做的是查询最低的作业得分。因此,在上面的模式设计中,我计划查询第三个元素,因为它是作业的最低分数。
我现在制作的mongodb查询是:
db.students.aggregate( [
{ "$unwind": "$scores" },
{ "$match" : {"type" : "homework"}},
{"$group": { '_id':'$_id', 'score': {'$min': "$scores.score" } } }
])
但执行此查询后我得到的是:
{ "result" : [ ], "ok" : 1 }
答案 0 :(得分:2)
您可能会在“匹配”中查看您的情况:您必须指定完整路径。
这意味着你应该这样做:
[{"$unwind": "$scores"},
{"$match": {"scores.type":"homework"}},
{"$group": { '_id':'$_id', 'score': {'$min': "$scores.score" } }}]
注意“scores.type”
答案 1 :(得分:1)
我希望这有帮助 你必须使用和运算符 http://docs.mongodb.org/manual/reference/operator/query/and/