2
查詢地理空間數據的方式目前我有以這種格式存儲我的GeoJSON的數據:最快MongoDB中
coord: [long, lat],
time: unix timestamp,
property: some property
我想找到最接近的時間戳(LTE)最近的位置。我現在這樣做的方式是:
collection.ensureIndex({loc: "2d"})
collection.find(
{coord : {
$near: [xval, yval],
$maxDistance: 200
},
time: {
$lte: time
}
}).sort({time: -1}).limit(1).toArray(function(err, queryResult) {
(did some return 404 and 200 here)
}
當數據量很小時,這是有效的。但是,隨着我的數據庫已經增加到50G +,這失敗了(總是返回404,說沒有發現任何東西),我想這是因爲我查詢數據的方式導致性能下降。我應該如何改變我的查詢/數據結構以改進並讓它再次運行?
我不認爲你的查詢有什麼問題。如果你有50G以上的數據,你可能需要擴展你的後端...... – Eric
@Eric你會介意擴展我的後端嗎? – acbh
要麼放更多的內存和CPU或碎片你的數據庫 – Eric