MongoDB geoNear分页时返回空白

MongoDB geoNear分页时返回空白,mongodb,mongoose,ecmascript-6,mongodb-query,Mongodb,Mongoose,Ecmascript 6,Mongodb Query,我正试图带回一个个人资料列表。这在find()中很有效 但我需要切换到聚合进行距离排序 现在不是每个人都能拿到20张我的100张唱片。我得了40分,剩下的好像都找不到了 有什么帮助吗? (是的,我试过使用一个简单的geoNear过滤器。结果相同) 您是否可以共享跳过和限制值?另外,在跳过/限制之前添加$sort,以获得一致性result@Valijon . skip从0开始,每次通话都会上升。上限是20。排序不是最后一个吗?我明白了。排序应在跳过/限制之前。请分享样品data@Valijon.

我正试图带回一个个人资料列表。这在find()中很有效

但我需要切换到聚合进行距离排序

现在不是每个人都能拿到20张我的100张唱片。我得了40分,剩下的好像都找不到了

有什么帮助吗? (是的,我试过使用一个简单的geoNear过滤器。结果相同)


您是否可以共享
跳过
限制
值?另外,在跳过/限制之前添加
$sort
,以获得一致性result@Valijon . skip从0开始,每次通话都会上升。上限是20。排序不是最后一个吗?我明白了。排序应在跳过/限制之前。请分享样品data@Valijon. 我删除了排序和相同的结果。Im通过获取它创建的数组的长度进行测试。我已经把范围缩小到了讨论这个问题的范围。如果没有它,我将使用匹配/跳过/限制直到整个结果计数。当我使用geo时,它会停在117个中的45个。更新:我只使用了match和geoNear进行了测试。geoNear似乎只返回45个结果,而没有它,则返回118个
 await Profile.aggregate([
      {
        $geoNear: {
          near: {
            type: "Point",
            coordinates: [long, lat]
          },
          distanceMultiplier:
            req.user.distanceMetric === "km" ? 0.001 : 0.000621371, // meter to ki:miles
          distanceField: "distance",
          spherical: true,
          maxDistance: distance !== 100 ? distance * 1609.34 : 99999999999
        }
      },
      {
        $match: {
          $and: [
            {
              _id: {
                $ne: Profile.castID(req.user.profileID),
                $nin: doNotDisplayList.map(id => Profile.castID(id))
              }
            }
          ]
        }
      },
      { $skip: skip },
      { $limit: limit }
    ]).sort({
      online: -1
    });