Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Mongodb中的对象数组获取数据_Mongodb_Mongoose_Mongodb Query - Fatal编程技术网

从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响应添加到帖子中吗?