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

このクエリで区切られたクエリの何が問題になっているのかわかりませんが、$ORを使用すると間違ったデータが表示されます

    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)
      }
    }
  }
}
4

1 に答える 1

0

コード (配列) を適切にフォーマットすると、問題が発生します。

ヒント:var_dump($range);

于 2012-07-08T22:01:32.267 に答える