Javascript mongodb中的查询用于筛选、获取嵌套数组上的数据以及基于嵌套数组的分页
这里有一个问题,我需要过滤,从嵌套数组中获取数据,并根据mongodb数据中的嵌套数组(带有数组的子属性)对数据进行分页 我的数据是这样嵌入的文档Javascript mongodb中的查询用于筛选、获取嵌套数组上的数据以及基于嵌套数组的分页,javascript,mongodb,mongoose,graphql,apollo-server,Javascript,Mongodb,Mongoose,Graphql,Apollo Server,这里有一个问题,我需要过滤,从嵌套数组中获取数据,并根据mongodb数据中的嵌套数组(带有数组的子属性)对数据进行分页 我的数据是这样嵌入的文档 school: [{ _id: "5d9eb788536e7a17b8032469" name: "school one" status: true class: [{ name: "class one" }, { name: "class two" }] },
school: [{
_id: "5d9eb788536e7a17b8032469"
name: "school one"
status: true
class: [{
name: "class one"
}, {
name: "class two"
}]
}, {
_id: "5d7b570c135dc32bb40d8943"
name: "school two"
Status: true
class: [{
name: "class one"
}, {
name: "class three"
}
}]
我想按状态筛选:true,类名仅为“class one”,然后根据类进行分页。我需要的结果如下:
result: [{
class: {
name: "class one"
}
school_name: "school one"
status: true
}, {
class: {
name: "class one"
}
school_name: "school two"
status: true
}]
mongoose中的查询是什么,如果我需要像这样过滤数据并在该模式中给我类似的结果?谢谢尝试此查询
db.getCollection('db').aggregate([{
"$unwind":"$class"
},{
"$match":{
"class.name":"class one"
}
},{
"$group":{
"_id":null,
"result":{
"$push":"$class"
}
}
},{
"$project":{
"_id":0
}
}])
db.getCollection('db').aggregate(
{ "$addFields": {
"class":
{
"$filter": {
"input": "$class",
"as": "sn",
"cond": {
"$and": [
{ "$eq": [ "$$sn.name", "class one" ] },
]
}
}
}
}}
)