0

I have YiiMongoDbSuite 1.3.6

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

add to EMongoCriteria.php additional criterias

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

return message like

{
    "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
}

also fields are indexed

{
        "v" : 1,
        "name" : "2dsphere",
        "key" : {
            "loc" : "2dsphere"
        },
        "ns" : "doctor.users"
    }

in console when requesting

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

returns valid result

1nstinct
  • 1,745
  • 1
  • 26
  • 30

1 Answers1

0

Yeah!!! Seems it works. I change format of Simple query on

     $users = \User::model ()->findAll(array (
        "conditions" => array (
            'loc' => array(
                'near' => array(
                    '$geometry' => array(
                        'type' => 'Point', 
                        'coordinates'=> array(-73.951909,40.610876)
                    )
                ), 
                'maxDistance' => 1000
            )
        )
    ));
1nstinct
  • 1,745
  • 1
  • 26
  • 30