1
我有很多不同的文檔,每個文檔都包含一個「保存時間」字段以及一個點。是否有可能不僅查詢包含位置$附近的所有文檔的文檔,而且還可以在同一時間內(或彼此的1秒內)查詢?執行查詢以確保最佳性能的最佳方式是什麼?帶時間字段的Mongodb地理空間查詢?
我有很多不同的文檔,每個文檔都包含一個「保存時間」字段以及一個點。是否有可能不僅查詢包含位置$附近的所有文檔的文檔,而且還可以在同一時間內(或彼此的1秒內)查詢?執行查詢以確保最佳性能的最佳方式是什麼?帶時間字段的Mongodb地理空間查詢?
一個compound 2dsphere指數可以引用一個集合的文檔內的多個位置和非位置字段。您可以按任何順序排列字段。
所以爲了讓你執行你的查詢是由時間限制,那麼你會創建具有「savetime」,因爲它是第一元素一個compound指數。即:
db.collection.ensureIndex({ savetime: 1, loc: "2dsphere" })
這使您約束日期正常,同時增加你的附加約束查找附近的點:
db.collection.find({
savetime: { $gte: new Date(<start>), $lte: new Date(<end>) },
loc: { $near :
{ $geometry :
{ type : "Point" ,
coordinates : [ <longitude> , <latitude> ] } ,
$maxDistance : <distance in meters>
}
}
}
})