Doctrine MongoDB - 有什么方法可以从 JSON 构建查询吗?

Doctrine MongoDB - is there any way to build a query from JSON?

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

{ "address.city": "Seattle"}

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

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

Is there any existing method to create a Doctrine.MongoDB.Query object from the JSON string?

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

Or alternately to query mongo directly and then pass those results to doctrine for hydration?

一旦你有了带有数据的普通数组(并且你不怕深入 UnitOfWork),你可以使用 $dm->getUnitOfWork()->getOrCreateDocument() 或使用 HydratorFactory 并将文档合并到 DocumentManager 稍后。

我自己没有使用过它,但是这个最近的包似乎就是为了这个目的而创建的(querybuilderjs 到学说中)。

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();