Mongo geoNear聚合管道-“附近”字段必须为指向

时间:2019-05-23 09:31:15

标签: mongodb mongoose geolocation mongodb-query geospatial

我正在对2个集合(位置和地点)进行聚合查找时使用Mongo管道。

我正在尝试退还这些地点附近的所有地点。

  

我得到的错误是'MongoError:'near'字段必须是点'

我相信这是因为我正在尝试在let中使用管道中的$ point变量,并且在这里做错了。我在这里看到的所有答案都有静态坐标,但我想使用查找中的答案。

这是我的代码:

   return await this.placeModel.aggregate([{
      $lookup : {
        from : "locations",
        let : {point : "location.coordinates"},
        pipeline: [  {
          $geoNear: {
            distanceField: "distance",
            near: { type: "Point", coordinates: "$point" },
            maxDistance: 20,
            spherical: true
          }
        }],
        as : "places"
      }
    }]);
  }

我有一个猫鼬的Place模型和Location模型。每个模型都有一个如下所示的GeoJson点:

location: {
    type: { type: String },
    coordinates: []
  },

如果可能的话,如何正确引用该点。

0 个答案:

没有答案