【问题标题】:How to encapsulate multiple $in queries in mongodb php如何在mongodb php中封装多个$in查询
【发布时间】:2021-04-21 04:45:34
【问题描述】:

这里的PRODUCT_NAMEBRAND_NAME 是来自同一个文档的两个不同的列。我想对选定的产品和品牌名称应用过滤器。

我的数组是这样的

Array
(
    [PRODUCT_NAME] => Array
        (
            [$and] => Array
                (
                    [$in] => Array
                        (
                            [0] => Product1
                            [1] => Product2
                        )

                )

        )

    [BRAND_NAME] => Array
        (
            [$and] => Array
                (
                    [$in] => Array
                        (
                            [0] => Brand1
                        )

                )

        )

)

【问题讨论】:

    标签: php arrays mongodb sorting


    【解决方案1】:

    使用 mongodb(假设是最新版本)执行此操作的方法是使用 mongodb 聚合,尤其是 $unwind

    以你的例子为例:

    db.yourcollection.aggregate( [
      { $unwind : "$firstattribute" } , // 1
      { $unwind : "$PRODUCT_NAME" },    // 2
      { $unwind : "$BRAND_NAME" },      // 3
    ] )
    

    现在解释一下:

    1. 因为在您的示例中,您提供了一个数组,您必须展开它,如果不是,请删除
    2. 在这里展开产品名称数组
    3. 这里是品牌名称

    注意:我可以通过一个真实示例(每个数组中至少包含 2 个元素的 json)提供一个更好(且可运行)的解决方案

    【讨论】:

    • 不客气,如果您能提供更好的json解决方案可能会更精确,否则如果解决您的问题,请接受此答案
    猜你喜欢
    • 2017-04-07
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    相关资源
    最近更新 更多