簡體   English   中英

在mongo中的$ near附近,每個文檔中包含位置數組

[英]$near in mongo with array of locations in each document

我想通過使用mongodb中的$ near運算符來接近某個區域內的用戶,但我不確定這樣做的正確方法。

在我的路線中,我有一個JavaScript模型(貓鼬)來查找鄰近區域內的本地用戶:

collection.find({
  $elemMatch: {
    locations: {
      $near: coords,
      $maxDistance: maxDistance
    }
  }
})

模式設計:

first_name: String,
  last_name: String,
  locations: [
    {
      suburb: String,
      state: String,
      postcode: String,
      longitude: Number,
      latitude: Number
    }
  ]

每個用戶都有許多位置,並且每個人都有緯度和經度。 我嘗試$ elemMatch沒有成功,並且我不確定是否需要聚合或使用其他運算符。

我建議使用GeoJSON Point格式存儲坐標,然后使用mongodb 2dsphere索引。

https://docs.mongodb.com/manual/core/2dsphere/

然后,您將可以將geoNear與maxDistance和minDistance結合使用。 這是非常有用的。

所以我的建議是您將架構修改為:

first_name: String,
  last_name: String,
  locations: [
    {
      suburb: String,
      state: String,
      postcode: String,
      geometry: {
         type: "Point",
         coordinates: [ Number, Number ]
      }
    }
  ]

(幾何形狀為GeoJSON Point格式)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM