我有一个任意的 MongoDB JSON 查找查询字符串,例如:
{ "address.city": "Seattle"}
或者
{ qty: { $gt: 5, $lt: 50 }
是否有任何现有方法可以从 JSON 字符串创建 Doctrine.MongoDB.Query 对象?或者直接查询 mongo,然后将这些结果传递给学说进行水合作用?
我有一个任意的 MongoDB JSON 查找查询字符串,例如:
{ "address.city": "Seattle"}
或者
{ qty: { $gt: 5, $lt: 50 }
是否有任何现有方法可以从 JSON 字符串创建 Doctrine.MongoDB.Query 对象?或者直接查询 mongo,然后将这些结果传递给学说进行水合作用?
是否有任何现有方法可以从 JSON 字符串创建 Doctrine.MongoDB.Query 对象?
目前没有,但是我们可以将setQuery
方法添加到Builder
. 更乏味但有效的方法是Query
自己实例化类。
或者直接查询 mongo,然后将这些结果传递给学说进行水合作用?
一旦您拥有包含数据的普通数组(并且您不怕深入研究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();