多个2d索引,不确定运行geoNear的是哪个

时间:2014-09-30 07:04:31

标签: javascript node.js mongodb mongoose

为何聚合

    aggregate.near({
      near: coord,
      distanceField: "distance",
      maxDistance: max
    });

可以返回

{
    "name": "MongoError",
    "errmsg": "exception: geoNear command failed: { ok: 0.0, errmsg: \"more than one 2d index, not sure which to run geoNear on\" }",
    "code": 16604,
    "ok": 0
}

在计划中有唯一的2d指数:

location: { type: [ Number ], index: '2d', sparse: true },

或多或少,当我从方案中删除一切时,错误会发生变化 为什么?为什么......

1 个答案:

答案 0 :(得分:8)

当您删除Mongoose模型中的索引(甚至整个字段)时,它将自动从MongoDB中删除

运行db.<your collection name>.getIndexes()以查看所有索引。记下要删除的索引的name

运行db.<your collection name>.dropIndex(<name of the index>)以删除索引。

默认情况下,Mongoose会在启动应用程序时告诉MongoDB(重新)创建索引(&#34; ensureIndex()&#34;)。