2014-11-25 2 views
0

나는YiiMongoDbSuite + 2dsphere 작동하지

{ 
    "message": "localhost:27017: can't parse query (2dsphere): { $near: [ -73.951909, 40.610876 ], $maxDistance: 8.999280057595392 }", 
    "file": "/home/yura/www/doctor/protected/extensions/YiiMongoDbSuite/EMongoDocument.php", 
    "line": 1232 
} 

또한 필드

을 색인처럼 YiiMongoDbSuite은 1.3.6

   $users = MyModel::model()->findAll(array(
        'conditions'=>array(
         'loc'=>array(
          'near' => array(50,50), 
          'maxDistance' => 1/111.12,  
         ), 
        ), 
       )); 

public static $operators = array(
     .... 
     'near'   => '$near', 
     'maxdistance' => '$maxDistance'); 

리턴 메시지 EMongoCriteria.php 추가 CRITERIAS에 추가해야 콘솔에서 973,210

db.users.find({loc:{$near:{$geometry: {type:"Point", coordinates: [-73.951909, 40.610876]}, $maxDistance: 1000}}}) 

반환 유효한 결과

답변

0

그래 요청! 그것이 작동하는 것 같습니다. 간단한 형식의 형식을 변경합니다.

 $users = \User::model()->findAll(array (
     "conditions" => array (
      'loc' => array(
       'near' => array(
        '$geometry' => array(
         'type' => 'Point', 
         'coordinates'=> array(-73.951909,40.610876) 
        ) 
       ), 
       'maxDistance' => 1000 
      ) 
     ) 
    )); 
관련 문제