Doctrine - 如何将真实的查询字符串打印到mongodb?

时间:2017-10-30 11:44:03

标签: mongodb symfony doctrine-orm

我正在使用MongoDB ODM并尝试查询:

$this->dm->createQueryBuilder($this->documentName)->select(['_id', 'name', 'created_date'])->field('active')->equals(true)->getQuery();

我想看看它发送给MongoDB的是什么?使用Doctrine ORM,您可以执行以下操作:$query->getSql();$query->getParameters()

提前致谢!

更新: 如果我有如上所述的查询并执行$queryBuilder->getQuery()->getQuery();

接收如下数组:

[
  "type" => 1
  "select" => array:3 [
    "_id" => 1
    "name" => 1
    "created_date" => 1
  ]
  "query" => array:1 [
    "active" => true
  ]
 "newObj" => []
]

这意味着:

db.getCollection('campaigns').find( { active: true }, { _id: 1, name: 1, created_date: 1})

谢谢@Alex Blex

1 个答案:

答案 0 :(得分:2)

查询是一个更复杂的结构而不是单个SQL字符串。 您可以从构建器中获取Doctrine\MongoDB\Query对象

$queryBuilder->getQuery();

查询数组本身:

$queryBuilder->getQuery()->getQuery();