使用$ near和$和

时间:2013-08-30 09:31:36

标签: mongodb geolocation

我正在尝试使用附加条件构建近似查询:

query = {
    $and : [
        { address : { $near : [x, y] } },
        { available: 1 }
    ]
};

db.points.find(query)

它给了我一个错误:

error: {
    "$err" : "can't find any special indices: 2d (needs index), 2dsphere (needs index),  for: { $and: [ { ipaddr: { $near: [ -82.49412043543862, 0.0 ] } }, { available: 1.0 } ] }",
    "code" : 13038
}

否则,像这样的查询工作正常

query = { address : { $near : [x, y] }, available : 1 }

我需要使用$and来构建复杂的查询。

我可以使用$near关键字构建$and查询吗?

2 个答案:

答案 0 :(得分:1)

请参阅此主题 - https://jira.mongodb.org/browse/SERVER-4572 - 看起来这是一个错误,但尚未解决..

答案 1 :(得分:0)

可能不是最好的解决方案,但我找到了解决此问题的方法。我所做的是将查询分成两部分1)查询最近的地址并获取对象ID 2)使用$ in运算符在第二个查询中使用它。