据我所知,我无法在 Mongo 中指定复杂的排序函数,所以我必须使用映射/归约查询,这感觉有点无用,因为我什至不使用归约部分。这很好,但是它返回的集合太大,我需要对其进行排序和限制(分页)。是否可以通过内联调用来做到这一点?我无法存储结果集合然后查询它,因为该集合对于每个用户来说都是唯一的并且不断变化。
通常情况下sort
在 mongodb 中,mapreduce 在映射之前应用,实际上它们应用于输入数据而不是输出。
来自 mongodb 文档
[, sort : <sorts the input objects using this key. Useful for optimization, like sorting by the emit key for fewer reduces>]
[, limit : <number of objects to return from collection>]
因此,如果要排序并限制 MapReduce 输出,则必须将结果存储在临时集合中。我认为不可能将排序和限制应用于inline
mapreduce 输出,因为它在 RAM 上运行。
EDIT:
有一个悬而未决的问题(添加对排序和限制内联映射/归约的支持 https://jira.mongodb.org/browse/SERVER-3973)在 mongodb Jira 中对此。看一看。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)