0
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”

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

感谢您的帮助

4

1 回答 1

2

这是一个记录在案的“功能”,您可以按照以下建议绕过它:

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

于 2013-08-26T11:09:58.843 回答