{ _id : ObjectId(...),
name : "...",
addresses : [ {
context : "home" ,
loc : [ 55.5, 42.3 ]
} ,
{
context : "office",
loc : [ -74 , 44.74 ]
}
]
}
address.loc 是“2d”索引的。
我想编写一个查询,该查询应该为我提供 $near 某个位置且上下文为办公室的所有文档。
I wrote some thing like:
db.coll.find({'address.loc':{$near:[lat,lng]}, 'address.context' : "office"});
上面的查询没有给我想要的结果。它在整个“地址”数组中搜索位置,然后在整个数组中搜索上下文。
我想搜索相同的数组位置和相同的上下文。我知道它可以通过 $elemMatch 来完成,但是当我尝试使用它时,它说没有可用的 2d 索引或 2dsphere 索引。
我是 MongoDB 新手,不知道应该如何编写查询。