Mongodb Geospacial搜索返回的结果少于可用结果

Mongodb Geospacial搜索返回的结果少于可用结果,mongodb,Mongodb,我有一个包含356个文档的集合(用户)和一个索引“2dsphere”,位于现场地理数据上。120个文档有一个字段地理数据:{type:“Point”,坐标:[X,Y]},其中X和Y是德国境内的坐标 如果我执行以下聚合: db.users.aggregate( [ { "$geoNear":{ near: { type: "Point", coordinates: [48.783469, 9.181842] },

我有一个包含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)个结果,我必须做些什么?

找到了陷阱: 所有(120)个文档的geodata.coordinates类型都设置为object而不是array。不幸的是,我无法解释为什么mongoDB仍然返回了一些结果而不是null。我使用以下命令转换了所有条目,现在它可以工作了:

db.users.find({ "geodata": { $exists: true, $ne: null }}).forEach((user)=> { 
  var coordinates = user.geodata.coordinates;
  user.geodata.coordinates = [coordinates["0"], coordinates["1"]];
  db.users.save(user);
});