仅返回嵌套数组中匹配的子文档元素

主要集合是零售商,其中包含商店阵列。每个商店都包含一系列优惠(您可以在此商店中购买)。此提供数组具有大小数组。(请参见下面的示例)


现在,我尝试查找所有尺寸为的报价L。


{

    "_id" : ObjectId("56f277b1279871c20b8b4567"),

    "stores" : [

        {

        "_id" : ObjectId("56f277b5279871c20b8b4783"),

        "offers" : [

            {

                "_id" : ObjectId("56f277b1279871c20b8b4567"),

                "size": [

                    "XS",

                    "S",

                    "M"

                ]

            },

            {

                "_id" : ObjectId("56f277b1279871c20b8b4567"),

                "size": [

                    "S",

                    "L",

                    "XL"

                ]

            }

        ]

    }

}

我已经尝试过以下查询: db.getCollection('retailers').find({'stores.offers.size': 'L'})


我期望这样的输出:


 {

"_id" : ObjectId("56f277b1279871c20b8b4567"),

"stores" : [

    {

        "_id" : ObjectId("56f277b5279871c20b8b4783"),

        "offers" : [

            {

                "_id" : ObjectId("56f277b1279871c20b8b4567"),

                "size": [

                    "S",

                    "L",

                    "XL"

                ]

            }

        ]

    }

}

但是我的查询输出还包含与sizeXS,X和M 不匹配的报价。


如何强制MongoDB仅返回与查询匹配的商品?


问候和感谢。


心有法竹
浏览 625回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB