我有一組資料,我正在嘗試使用$geoNear. 這是我正在使用的作業代碼:
return Site.aggregate([
{$geoNear: {
near: {
type: "Point",
coordinates: [address.location.lat, address.location.lng]
},
maxDistance: 20000,
distanceField: "distance",
}},
{$match: {"address.zip": address.address_components.zip}},
{$project: {
location: 0
}}
]);
所以這行得通,但似乎并不理想。我想先匹配“address.zip”欄位。然后只需獲取該匹配的每個結果的距離。問題是這$geoNear必須是總體的第一階段。
據我所知,這有點低效。我認為如果我能先做我的事情會更好$match,然后才能得到結果的距離。我什至不想使用該maxDistance屬性來檢查,這是不必要的。
我想知道的是,是否有更好的方法來做到這一點。或者也許是一種無需使用即可獲得距離的方法$geoNear。
uj5u.com熱心網友回復:
讓$geoNear優化query選項:
return Site.aggregate([
{$geoNear: {
near: {
type: "Point",
coordinates: [address.location.lat, address.location.lng]
},
// no longer needed: maxDistance: 20000,
distanceField: "distance",
query: {
"address.zip": address.address_components.zip
}
}}
]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/411679.html
標籤:
