猿问

Mongodb多层嵌套数组如何更好的查询?

现有数据如下

{
    "_id" : ObjectId("5992c90beeb45634df1c2be4"),
    "name" : "测试数据1",
    "status" : {
        "product" : [ 
            {
                "id" : ObjectId("59a37f7aef887a1d58b59f4f"),
                "status" : true
            }, 
            {
                "id" : ObjectId("59a37f7bef887a1d58b59f50"),
                "status" : false
            }, 
            {
                "id" : ObjectId("59a3801cef887a1d58b59f55"),
                "status" : false
            }
        ],
        "line":[]
    },
    "level" : [ 
        {
            "id" : ObjectId("59a37efeef887a1d58b59f43"),
            "level" : "A"
        }, 
        {
            "id" : ObjectId("59a37f03ef887a1d58b59f44"),
            "level" : "B"
        }, 
        {
            "id" : ObjectId("59a37f03ef887a1d58b59f45"),
            "level" : "C"
        }
    ]
},
{
    "_id" : ObjectId("599e7dc07780bbfa9bee42a9"),
    "name" : "test数据2",
    "status" : {
        "product" : [ 
            {
                "id" : ObjectId("59a37f7aef887a1d58b59f4f"),
                "status" : false
            }, 
            {
                "id" : ObjectId("59a37f7bef887a1d58b59f50"),
                "status" : false
            }, 
            {
                "id" : ObjectId("59a3801cef887a1d58b59f55"),
                "status" : false
            }
        ]
    },
    "location" : 6,
    "verify_state" : 0,
    "level" : [ 
        {
            "id" : ObjectId("59a37efeef887a1d58b59f43"),
            "level" : "A"
        }, 
        {
            "id" : ObjectId("59a37f03ef887a1d58b59f44"),
            "level" : "B"
        }, 
        {
            "id" : ObjectId("59a37f03ef887a1d58b59f45"),
            "level" : "C"
        }
    ]
}
......

我希望查找出status.product.id包含在 [ObjectId("59a37f7aef887a1d58b59f4f"),ObjectId("59a37f7bef887a1d58b59f50"),ObjectId("59a3801cef887a1d58b59f55")]数组里,同时对应的status.product.status为true的数据,查询语句应该怎么写呢?

开心每一天1111
浏览 993回答 1
1回答
随时随地看视频慕课网APP
我要回答