Doctrine ODM查询生成器子查询

时间:2015-12-04 11:00:17

标签: mongodb symfony doctrine-orm akeneo

我正在使用带有mongoDB的Akeneo 1.4系统,并且有多个数据关联。现在我想查询具有关键字类型的产品,其中包含特定产品。 mongo数据在数据库中如下所示:

"associations": [
{
  "_id": ObjectId("565867d7c6e41f4408d0068f"),
  "associationType": 5,
  "groupIds": [

  ],
  "owner": {
    "$ref": "pim_catalog_product",
    "$id": ObjectId("56560373c6e41f5b688b47d7"),
    "$db": "akeneo_pim"
  },
  "products": [
    {
      "$ref": "pim_catalog_product",
      "$id": ObjectId("56560372c6e41f5b688b4583"),
      "$db": "akeneo_pim"
    }
  ]
},
{
  "_id": ObjectId("565867d7c6e41f4408d00690"),
  "associationType": 6,
  "groupIds": [

  ],
  "owner": {
    "$ref": "pim_catalog_product",
    "$id": ObjectId("56560373c6e41f5b688b47d7"),
    "$db": "akeneo_pim"
  },
  "products": [

  ]
}
]

我知道如何使用in:

查询products数组
$queryBuilder->addOr(
    $queryBuilder->expr()->field('associations.products.$id')->in(array(new \MongoId($product->getId())))
);

但我不知道如何仅查询具有特定associationType(例如5)AND且具有给定productId的产品。我可以在Doctrine ODM中执行类似子查询的操作吗?我已经尝试过多个QueryBuilder对象,但是没有用。

0 个答案:

没有答案