Event Schema:
Name:String,
Description: String,
Location:[
ll:[long,lat]
type: String (source,destination)
],
CreatedDate:Date,
UpdatedDate:Date,
文件示例:
{
Name : 'Test1',
Description : 'Test1',
Location:[{
ll:[{long:-118.2436849,lat:34.0522342}],
type: 'source'
},{
ll:[{long:2,lat:4}],
type: 'destination'
}]
}
我有7个文件具有与上述相同的结构。
当我进行查询时:
db.events.count({'location.ll' : {$near:[-118.2436849,34.0522342]},'location.type':'source'});
我得到14点数。我理想情况下应该得到7条记录,但我得到14条记录。我不确定我做错了什么。
我已将“location.ll”字段编入索引为“2d”
请让我知道我做错了什么?
感谢您的帮助
答案 0 :(得分:2)
这是documented“功能”,您可以按照以下建议解决这个问题:
对于具有多个坐标值的文档,如果多个索引坐标对满足查询约束,则查询可能会多次返回同一文档。使用uniqueDocs参数geoNear或$ uniqueDocs运算符和$ geoWithin。