查询三个集合、对它们进行排序和限制的最高效方法?
Posted
技术标签:
【中文标题】查询三个集合、对它们进行排序和限制的最高效方法?【英文标题】:The most performant way to query against three collections, sort them and limit? 【发布时间】:2013-04-15 12:45:19 【问题描述】:我需要查询 3 个不同的集合。
然后我需要对收集结果进行排序(每个基于不同的字段和顺序但每次一个 DateTime 值),然后最后限制我想要的结果数量(在我的情况下为 10 个)。
目前我只做三个单独的查询,每个查询限制为 10,然后根据它们拥有的日期时间手动排序。然后我自己最终限制在 10 个。
有没有更好的方法来做到这一点?
【问题讨论】:
这些系列是什么?查询是什么样的? 【参考方案1】:由于 mongodb 不是关系数据库,您可以在一个查询中连接多个表,所以不。我什至不确定您是否可以为关系 DBMS 进行这种排序(使每个字段的顺序优先级相等)。
你正在做的已经听起来很不错了。您可能会改进对这 3 个结果的排序。如果前 10 名中没有其他元素,则提前中止迭代一个或多个集合。您可以相应地修改查询以仅返回其他两个集合的文档,其日期低于最后一个(第 10 个)第一个查询的集合。但也许你已经这样做了……
在谈论性能时,您可以考虑在这些用于查询的日期时间字段上添加索引,以使这些字段在内存中预先排序。
【讨论】:
以上是关于查询三个集合、对它们进行排序和限制的最高效方法?的主要内容,如果未能解决你的问题,请参考以下文章