从Mongodb中的对象数组获取数据
项目数组值 学生收藏包括以下文档:从Mongodb中的对象数组获取数据,mongodb,mongoose,mongodb-query,Mongodb,Mongoose,Mongodb Query,项目数组值 学生收藏包括以下文档: { "_id" : 1, "semester" : 1, "grades" : [ 70, 87, 90 ] } { "_id" : 2, "semester" : 1, "grades" : [ 90, 88, 92 ] } { "_id" : 3, "semester" : 1, "grades" : [ 85, 100, 90 ] } { "_id" : 4, "semester" : 2, "grades" : [ 79, 85, 80 ] } { "
{ "_id" : 1, "semester" : 1, "grades" : [ 70, 87, 90 ] }
{ "_id" : 2, "semester" : 1, "grades" : [ 90, 88, 92 ] }
{ "_id" : 3, "semester" : 1, "grades" : [ 85, 100, 90 ] }
{ "_id" : 4, "semester" : 2, "grades" : [ 79, 85, 80 ] }
{ "_id" : 5, "semester" : 2, "grades" : [ 88, 88, 92 ] }
{ "_id" : 6, "semester" : 2, "grades" : [ 95, 90, 96 ] }
{ "_id" : 1, "grades" : [ 87 ] }
{ "_id" : 2, "grades" : [ 90 ] }
{ "_id" : 3, "grades" : [ 85 ] }
在下面的查询中,投影{“grades.$”:1}只返回grades字段大于或等于85的第一个元素
db.students.find( { semester: 1, grades: { $gte: 85 } }, { "grades.$": 1 } )
该操作将返回以下文档:
{ "_id" : 1, "semester" : 1, "grades" : [ 70, 87, 90 ] }
{ "_id" : 2, "semester" : 1, "grades" : [ 90, 88, 92 ] }
{ "_id" : 3, "semester" : 1, "grades" : [ 85, 100, 90 ] }
{ "_id" : 4, "semester" : 2, "grades" : [ 79, 85, 80 ] }
{ "_id" : 5, "semester" : 2, "grades" : [ 88, 88, 92 ] }
{ "_id" : 6, "semester" : 2, "grades" : [ 95, 90, 96 ] }
{ "_id" : 1, "grades" : [ 87 ] }
{ "_id" : 2, "grades" : [ 90 ] }
{ "_id" : 3, "grades" : [ 85 ] }
但在下面的结果中,我还需要“学期”值。而且如果它在同一个位置上有多个值,则为Serm。
编辑:相同位置的多个值,如集合如下所示:
{ "_id" : 1, "semester" : 1, "subject": "Maths", "class": "5", "division" : "A" "grades" : [ 70, 87, 90 ] }
{ "_id" : 2, "semester" : 1, "subject": "Maths", "class": "5", "division" : "A" "grades" : [ 90, 88, 92 ] }
{ "_id" : 3, "semester" : 1, "subject": "Maths", "class": "5", "division" : "A" "grades" : [ 85, 100, 90 ] }
{ "_id" : 4, "semester" : 2, "subject": "Maths", "class": "5", "division" : "A" "grades" : [ 79, 85, 80 ] }
{ "_id" : 5, "semester" : 2, "subject": "Maths", "class": "5", "division" : "A" "grades" : [ 88, 88, 92 ] }
{ "_id" : 6, "semester" : 2, "subject": "Maths", "class": "5", "division" : "A" "grades" : [ 95, 90, 96 ] }
i、 集合包含多个字段,如“主题”、“类”、“部门”,位于与“学期”相同的位置。您需要将其添加到项目部分,如
db.students.find({学期:1,成绩:{$gte:85},{“成绩:$”:1,学期:1})
而且如果它与Serm在同一位置有多个值
这一行是什么意思,你能解释一下吗?@Shrabanee-在editso中解释你应该研究一下你能将预期的json响应添加到帖子中吗?