mongodb 中什么查询进行过滤,获取嵌套数组上的数据,以及基于嵌套数组的分页

我在这里有一个问题,我需要过滤,从嵌套数组中获取数据,并根据 mongodb 数据中的嵌套数组(带有数组的子属性)对数据进行分页


我的数据是这样的嵌入文档


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,类名仅为“类一”,然后根据类进行分页。我需要的结果是这样的:


result: [{

    class: {

        name: "class one"

    }

    school_name: "school one"

    status: true

}, {

    class: {

        name: "class one"

    }

    school_name: "school two"

    status: true

}]

mongoose 中的查询是什么,如果我需要像这样过滤数据并在该模式中给我类似的结果?谢谢你


守着星空守着你
浏览 261回答 2
2回答

偶然的你

试试这个查询    db.getCollection('db').aggregate(    { "$addFields": {        "class":           {              "$filter": {                      "input": "$class",                      "as": "sn",                      "cond": {                        "$and": [                          { "$eq": [ "$$sn.name", "class one" ] },                     ]              }          }       }     }}    )

湖上湖

db.getCollection('db').aggregate([{    "$unwind":"$class"    },{        "$match":{            "class.name":"class one"            }        },{            "$group":{                "_id":null,                "result":{                    "$push":"$class"                    }                }            },{                "$project":{                    "_id":0                    }                }])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript