使用Mongo 3.6.9。
我有1个具有1000个患者记录的集合。 我还有另一个集合,其中包含每个患者的原始数据。
我需要遍历每位患者并收集7天的具体数据。
我可以查询数据表,并为每个患者找到正确的数据。
挑战: 1)我可以查看所有记录并返回所有匹配项,然后按时间对结果进行排序,并保留最近7天。 2)我可以对整个数据收集进行排序,然后得到最近的7天 3)我可以创建一个临时集合来存储排序后的数据,然后在遍历每位患者时使用它。.基本上对整个查询集排序一次。
排序10万条数据记录大约需要100-200毫秒。一切都编入索引。
我遇到的问题..如果我有30位患者要返回:如果是#2,则每次对其进行排序。我以为Mongo会记住第一种排序方式,然后再使用29次。.不。
我之所以使用#1,是因为整个过程花费了200ms的时间,例如,所有30位患者..因此,我认为mongo索引对于我正在搜索的数据而言超级有效。我只是以某种方式不喜欢必须遍历所有10万条记录X 30位患者。特别是只希望最后7天是一小部分数据。但这比排序30次要快得多,并且#3基本上将整个收藏复制到一个新收藏似乎很昂贵。
所以想知道是否有人在说服mongo对同一个查询(查找)进行n次排序时如何说服mongo进行排序?
我正在阅读QueryPlans和计划缓存。.似乎有些不确定。