我試圖從我的收藏中找到數據,並以最接近到離geoJSON點最遠的順序顯示,它基於當時的帖子位置(loc :):創建。
我已經進入蒙戈控制檯,以確保他們正在建立索引2dsphere跑
db.my-collection.createIndex({ loc : "2dsphere" })
。
現在無論何時我使用我的find命令以上述順序列出帖子,只有$ maxDistance可以工作,而$ minDistance對於它們的排列方式完全沒有影響。下面是代碼:
return posts.find({
loc:
{ $near :
{
$geometry:{ type:"Point", coordinates:[ lng, lat]},
$maxDistance: maxDistance,
$minDistance: minDistance
}
},
});
}
我相信我已經爲有關MongoDB(http://docs.mongodb.org/manual/reference/operator/query/near/)描述所做的一切,但現在看來,我失去了一些東西。
我不明白。如果你正在嘗試訂購它們,那麼你需要指定一個'sort'選項。你使用'maxDistance'和'minDistance'是一個硬約束(不要顯示任何不符合這些標準的結果),而不是排序順序。 –
如果我沒有弄錯,$ near命令會自動對它們進行排序。問題是,當它對它們進行排序時,它沒有考慮到郵件需要顯示的$ minDistance,以便它們最終顯示出來。 – Isaac
當你在mongodb中直接執行查詢時,你會得到相同的結果嗎?即,這是一個流星問題還是一個mongo問題? –