相关疑难解决方法(0)

如何使用MongoDB过滤子文档中的数组

我有像这样的子文档数组

{
    "_id" : ObjectId("512e28984815cbfcb21646a7"),
    "list" : [
        {
            "a" : 1
        },
        {
            "a" : 2
        },
        {
            "a" : 3
        },
        {
            "a" : 4
        },
        {
            "a" : 5
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我可以过滤子文档> 3

我期待下面的结果

{
    "_id" : ObjectId("512e28984815cbfcb21646a7"),
    "list" : [
        {
            "a" : 4
        },
        {
            "a" : 5
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用$elemMatch但返回数组中的第一个匹配元素

我的查询:

db.test.find( { _id" : ObjectId("512e28984815cbfcb21646a7") }, { 
    list: { 
        $elemMatch: 
            { a: { $gt:3 } 
            } 
    } 
} ) …
Run Code Online (Sandbox Code Playgroud)

filter mongodb mongodb-query aggregation-framework

81
推荐指数
3
解决办法
9万
查看次数