Search code examples
mongodbsymfonydoctrinedoctrine-odmdoctrine-mongodb

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


I have an arbitrary MongoDB JSON find query string, for example:

{ "address.city": "Seattle"}

or

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

Is there any existing method to create a Doctrine.MongoDB.Query object from the JSON string? Or alternately to query mongo directly and then pass those results to doctrine for hydration?


Solution

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