Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要查询 3 个不同的集合。
然后我需要对收集结果进行排序(每个都基于不同的字段和顺序,但每次都是一个 DateTime 值),然后最后限制我想要的结果数量(在我的例子中是 10 个)。
目前我只是在做三个单独的查询并将每个查询限制为 10,然后根据他们拥有的日期时间手动排序。然后我自己最终限制在 10 个。
有一个更好的方法吗?
由于 mongodb 不是关系数据库,您可以在一个查询中连接多个表,所以不。我什至不确定您是否可以为关系 DBMS 进行这种排序(使每个字段的顺序优先级相等)。
你正在做的已经听起来很不错了。您可能会改进对这 3 个结果的排序。如果前 10 名中没有其他元素,则提前中止迭代一个或多个集合。您可以相应地修改查询以仅返回其他两个集合的文档,其日期低于最后一个(第 10 个)第一个查询的集合。但也许你已经这样做了......
在谈论性能时,您可以考虑在用于查询的这些日期时间字段上添加索引,以使这些字段在内存中预先排序。