繁体   English   中英

如何在 mongodb php 中封装多个 $in 查询

[英]How to encapsulate multiple $in queries in mongodb php

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

我的数组是这样的

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

                )

        )

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

                )

        )

)

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

所以作为你的例子:

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

现在做一些解释:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM