我有一个任意MongoDB JSON查找查询字符串,例如:
{ "address.city": "Seattle"}
或
{ qty: { $gt: 5, $lt: 50 }
是否有任何现有方法可以从JSON字符串创建Doctrine.MongoDB.Query对象?或者可以直接查询mongo,然后将这些结果传递给doctrine进行补水?
答案 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();