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>
}
}
}
})