[英]$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.