2012-07-08 8 views
0
$range = array('$or' => 
    array( 
     array('loc.lat' => array('$within' => 
     array('$centerSphere' => 
     array(array(floatval($la), floatval($long)), $max ))), 
     'language' => 'de', 'M' => 'Y') 
    ), 
    array('loc.c' => 'de', array('loc.m' => array('$exists' => false))), 
    array('loc.w' => 12, array('loc.m' => array('$exists' => false))) 
)); 

Je ne sais pas ce qui ne va pas avec ce travail de requête séparée de requête OK mais avec $ OU affichaient des données erronées

array(3) { 
    ["$or"]=> 
    array(1) { 
    [0]=> 
    array(3) { 
     ["loc.lat"]=> 
     array(1) { 
     ["$within"]=> 
     array(1) { 
      ["$centerSphere"]=> 
      array(2) { 
      [0]=> 
      array(2) { 
       [0]=> 
       float(50.0646501) 
       [1]=> 
       float(19.9449799) 
      } 
      [1]=> 
      float(0.004390090937598) 
      } 
     } 
     } 
     ["language"]=> 
     string(2) "pl" 
     ["M"]=> 
     string(1) "Y" 
    } 
    } 
    [0]=> 
    array(2) { 
    ["loc.c"]=> 
    string(2) "pl" 
    [0]=> 
    array(1) { 
     ["loc.m"]=> 
     array(1) { 
     ["$exists"]=> 
     bool(false) 
     } 
    } 
    } 
    [1]=> 
    array(2) { 
    ["loc.w"]=> 
    string(2) "12" 
    [0]=> 
    array(1) { 
     ["loc.m"]=> 
     array(1) { 
     ["$exists"]=> 
     bool(false) 
     } 
    } 
    } 
} 
+0

quelles sont les requêtes distinctes? –

Répondre

0

Format votre code (tableaux) correctement et vous verrez le problème.

Conseil: var_dump($range);

+0

Formé, quand je l'utilise sans $ ou fonctionne bien. – user956584

+0

ouais? Si c'est le cas, affichez le code lisible et correctement formaté ... –

+0

Il ne s'agit pas de formatage magnifique. Problème avec Mongodb qui ne supporte pas les requêtes geo avec $ ou $ all etc https://jira.mongodb.org/browse/SERVER-3984 donc c'est juste noposibbbbre – user956584