我有一个集合(用户)在字段地理数据上有356个文档和索引“2dsphere” . 120个文档有一个字段地理数据:{type:“Point”,坐标:[X,Y]}其中X和Y是德国境内的坐标 .
如果我执行以下聚合:
db.users.aggregate(
[
{
"$geoNear":{
near: { type: "Point", coordinates: [48.783469, 9.181842] },
distanceField: "distanceCalculated",
spherical: true
}
},
{
"$sort":{"distanceCalculated":1}
}
]
)
我得到了46个结果,但据我了解,我应该得到至少100(极限参数的标准)正如我所看到的,所有结果都在~210公里内是否有任何未记录的标准maxDistance?我也尝试了不同的maxDistance值,但从未获得超过48个结果 .
我的问题是,我需要做些什么来获得按距离排序的所有(120)结果?
1 回答
发现陷阱:所有(120)文档都将geodata.coordinates的类型设置为object而不是array . 不幸的是,我不能说为什么mongoDB返回了一些结果而不是null . 我使用以下命令转换了所有条目,现在它可以工作: