查询三个集合,排序和限制的最高效方法?

时间:2013-04-15 12:45:20

标签: mongodb database

我需要查询3个不同的集合。

然后我需要对集​​合结果进行排序(每个结果基于不同的字段和顺序,但每次都是DateTime值),然后最终限制我想要的结果数量(在我的情况下为10)。

目前我只是做三个单独的查询并将每个查询限制为10,然后根据它们的日期时间手动排序。然后我最终限制为10岁。

有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

由于mongodb不是关系数据库,你可以在一个查询中连接多个表,没有。我甚至不确定你是否可以为关系型DBMS做这种排序(让每个字段在顺序优先级上相等)。

你所做的一切听起来真的很棒。您可以改进这3个结果的排序。如果没有其他元素可以在整个顶部10中,则可以提前中止迭代一个或多个集合。您可以相应地修改您的查询,只返回其他两个集合的文档,其日期低于最后一个(第10个)的集合。首先查询收集。但也许你已经这样做了......

在谈论性能时,您可以考虑在用于查询的这些日期时间字段中添加索引,以使字段在内存中保持预先排序。