Php geoNear在Dev服务器上不工作

Php geoNear在Dev服务器上不工作,php,mongodb,amazon-web-services,digital-ocean,Php,Mongodb,Amazon Web Services,Digital Ocean,我有一个mongo查询,它在我的生产服务器上运行良好。但它不会在我的开发服务器上返回结果。dev服务器上的My db是live上的db的副本 产品-AWS: mongo v3.0.7 开发-数字海洋 mongo v3.0.9 Mongo查询(使用RoboMongo运行)-坐标为anonimity屏蔽;) 搜索中应返回的文档如下所示(删除了不相关的字段): 我的Live server返回上述文档和另外两个文档。在Dev服务器上,我刚刚得到 { "ok" : 0, "errmsg" :

我有一个mongo查询,它在我的生产服务器上运行良好。但它不会在我的开发服务器上返回结果。dev服务器上的My db是live上的db的副本

产品-AWS:
mongo v3.0.7

开发-数字海洋
mongo v3.0.9

Mongo查询(使用RoboMongo运行)-坐标为anonimity屏蔽;)

搜索中应返回的文档如下所示(删除了不相关的字段):

我的Live server返回上述文档和另外两个文档。在Dev服务器上,我刚刚得到

{
   "ok" : 0,
   "errmsg" : "no geo indices for geoNear"
}
我做错了什么


编辑:其他简单的CRUD查询在两台服务器上都可以正常工作

必须使用地理索引:或者如果要执行
$geoNear
。所以,只需将位置字段索引从生产复制到开发服务器。

您必须使用地理索引:或者如果您想执行
$geoNear
。所以,只需将位置字段索引从生产服务器复制到开发服务器。

Geonear是一个聚合管道阶段。你应该这样做

db.getCollection('trips').aggregate([{
  "$geoNear": {
  "near": {"type":"Point","coordinates":[
    -120.28923776, 
            38.86485915
  ]},
    "distanceMultiplier": 6378137,
"distanceField": "dist.calculated",
  "key":"start",
    "maxDistance": 200,
  "spherical": true,
  
}}])

Geonear是一个聚合管道阶段。你应该这样做

db.getCollection('trips').aggregate([{
  "$geoNear": {
  "near": {"type":"Point","coordinates":[
    -120.28923776, 
            38.86485915
  ]},
    "distanceMultiplier": 6378137,
"distanceField": "dist.calculated",
  "key":"start",
    "maxDistance": 200,
  "spherical": true,
  
}}])

我不想问这个,但我该怎么做?我不想问这个,但我该怎么做?
db.getCollection('trips').aggregate([{
  "$geoNear": {
  "near": {"type":"Point","coordinates":[
    -120.28923776, 
            38.86485915
  ]},
    "distanceMultiplier": 6378137,
"distanceField": "dist.calculated",
  "key":"start",
    "maxDistance": 200,
  "spherical": true,
  
}}])