Doctrine MongoDB - is there any way to build a query from JSON?
Is there any existing method to create a Doctrine.MongoDB.Query object from the JSON string?
At this moment no, however we could add setQuery
method to the Builder
. More tedious, but working, would be instantiating Query
class on your own.
Or alternately to query mongo directly and then pass those results to doctrine for hydration?
Once you have plain arrays with data (and you're not afraid to dive into UnitOfWork
) you may utilize $dm->getUnitOfWork()->getOrCreateDocument() or employ HydratorFactory
and merge documents into DocumentManager
later.
I haven't used it myself, but this recent bundle appears to have been created to serve this exact purpose (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();