Doctrine MongoDB - 有没有办法从JSON构建查询?

时间:2016-02-02 23:36:43

标签: mongodb symfony doctrine doctrine-odm doctrine-mongodb

我有一个任意MongoDB JSON查找查询字符串,例如:

{ "address.city": "Seattle"}

{ qty: { $gt: 5, $lt: 50 }

是否有任何现有方法可以从JSON字符串创建Doctrine.MongoDB.Query对象?或者可以直接查询mongo,然后将这些结果传递给doctrine进行补水?

2 个答案:

答案 0 :(得分:1)

  

是否有任何现有的方法可以从JSON字符串创建Doctrine.MongoDB.Query对象?

目前没有,但我们可以将setQuery方法添加到Builder。更乏味,但有效,将自己实例化Query课程。

  

或者直接查询mongo,然后将这些结果传递给doctrine进行补水?

一旦您拥有包含数据的简单数组(并且您不怕潜入UnitOfWork),您可以使用$dm->getUnitOfWork()->getOrCreateDocument()或使用HydratorFactory并将文档合并到DocumentManager后面。

答案 1 :(得分:0)

我自己没有使用它,但是这个最近的捆绑似乎是为了达到这个目的而创建的(querybuilderjs into doctrine)。

https://github.com/fourlabsldn/QBJSParserBundle

https://github.com/fourlabsldn/QBJSParser

         $parsedRuleGroup = $this->get('fl_qbjs_parser.json_query_parser.doctrine_orm_parser')->parseJsonString($jsonString, Product::class);

         $query = $this->get('doctrine.orm.entity_manager')->createQuery($parsedRuleGroup->getDqlString());
         $query->setParameters($parsedRuleGroup->getParameters());
         $results = $query->execute();
相关问题