当查询字段是 objectId 时,geoNear 聚合不起作用吗?

时间:2021-03-23 20:03:43

标签: mongodb

我的 geonear 代码可以正常工作,除非我输入查询:{id: req.params.id}。它适用于我放置的任何其他过滤器对象。

有谁知道如何在使用 geoNear 时使用 objectId 查询某个文档?

我现在有以下内容。有没有办法先对文档进行匹配,即{$match: {id: req.params.id}。我尝试这样做,但由于 $geoNear 必须是管道中的第一步,所以它没有成功。

const distances = await User.aggregate([
      {
        $geoNear: {
          near: {
            type: "Point",
            coordinates: [lng, lat],
          },
          //   maxDistance: 13.3333 * 1000,
          spherical: true,
          distanceField: "distance",
          distanceMultiplier: 0.001,
          query: { _id: req.params.id },
        },
      },
      { $project: { id: 1, distance: 1 } },
    ]);

1 个答案:

答案 0 :(得分:0)

相关问题