find指定date后的第一个文件

我有一种情况需要关联两个集合之间的数据。

我想从一个集合中的文档中获取时间,然后在另一个集合中find第一个或之后的文档。

时代通常是不一致的,可能会出现两者之间的时间差距巨大的情况。

我目前正在使用(在Node.js,使用本机驱动程序):

coll.find({ 'TimeIndex': { '$lt': new Date(startTime.getTime() + 1000*10), '$gte': startTime } }); 

但是,烘烤的假设是在10秒内会有一个点。 如果没有? 那么我需要做一些扩大的search?

我可以删除这个$ lt,只是取第一个sorting结果,但是我担心search空间太大,会变得非常慢。

有没有更好的方法来做到这一点,我错过了?

我想你在这里有一个很好的方法,因为查询正在努力克服一定的时间差距。 假设该领域有一个索引,那么我可以build议延长时间间隔有非常安全的缓冲区(这取决于数据负载) – 如60秒。

甚至可能会更好地检索一堆匹配的文件,并处理它们的客户端比错过的东西,并有一个额外的往返服务器。

你有没有尝试过这样的事情?

 coll.find({ 'TimeIndex': {'$gte': startTime}}) .sort( { TimeIndex: 1 } ) .limit(1); 

然而,我不知道表演。

如果有性能问题,你的方法看起来不错。