我正在尝试使用附加条件构建近似查询:
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
查询吗?
答案 0 :(得分:1)
请参阅此主题 - https://jira.mongodb.org/browse/SERVER-4572 - 看起来这是一个错误,但尚未解决..
答案 1 :(得分:0)
可能不是最好的解决方案,但我找到了解决此问题的方法。我所做的是将查询分成两部分1)查询最近的地址并获取对象ID 2)使用$ in运算符在第二个查询中使用它。