MongoDB $ near返回重复记录

时间:2013-08-25 02:18:33

标签: mongodb spatial-index

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”

请让我知道我做错了什么?

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

这是documented“功能”,您可以按照以下建议解决这个问题:

  

对于具有多个坐标值的文档,如果多个索引坐标对满足查询约束,则查询可能会多次返回同一文档。使用uniqueDocs参数geoNear或$ uniqueDocs运算符和$ geoWithin。