Hemos creado la consulta MongoDB pero no se convierte en PHP
Consulta MongoDB
db.crawled_jobs.aggregate( [ { $geoNear: { near: { type: "Point", coordinates: [-73.86, 41.07 ] }, distanceField:"dist.calculated", maxDistance: 100000, includeLocs: "dist.location", num: 1225, spherical: true, "query": { "title": /sales/ } } } ])La consulta de Mongodb funciona bien y obtenemos resultados
En php \MongoDB\Driver\Command
Cree una matriz en PHP y utilícela para la consulta de MongoDB
$queryString = [['$geoNear'=> ['near'=> [ 'type'=> "Point",'coordinates'=> [$lon,$lat] ], 'distanceField'=> "dist.calculated",'maxDistance'=> $maxDistance, 'includeLocs'=> "dist.location", 'num'=> 10000, 'spherical'=> true, 'query' => ['title' => '/sales/'] ] ] ];después de esta consulta, la consulta de MongoDB se ve así
db.crawled_jobs.aggregate([{"$geoNear":"near":"type":"Point","coordinates":[-73.86,41.07]},"distanceField":"dist.calculated","maxDistance":100000,"includeLocs":"dist.location","num":1225,"spherical":true,"query":{"title":"\/sales\/"}}}]) No obtuvimos el resultado porque agregó una barra invertida en la consulta "query":{"title":"\/sales\/"} But we need like this "query": { "title": /sales/ }
¿Alguien puede ayudarnos?
\MongoDB\Driver\Command no acepta cadena :( requiere la única matriz que no es cadena)
arreglarlo con esto
'query' => ['title'=> array('$regex' => 'NYC')]Debe usar la clase MongoDB\BSON\Regex para generar expresiones regulares de la siguiente manera:
'query' => ['title' => new MongoDB\BSON\Regex('sales')]