据我所知,我无法在Mongo中指定复杂的排序函数,因此我必须使用map / reduce查询,因为我甚至不使用reduce部分,所以感觉有点无用。这很好,但它返回的集合太大,我需要排序和限制它(paginate)。是否可以通过内联呼叫进行此操作?我无法存储生成的集合,然后查询它,因为该集合对每个用户都是唯一的,并且不断变化。
答案 0 :(得分:4)
通常在mongodb mapreduce中sort
应用于地图之前,字面上它们应用于输入数据而不是输出。
来自mongodb docs
[, 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>]
所以,如果你想排序&amp;限制map reduce输出,必须将结果存储在temp集合中。我不认为它可以应用排序&amp;限制为inline
mapreduce输出,因为它在RAM上运行。
修改强>
mongodb Jira有一个未解决的问题(Add support for sorting and limiting inline map/reduce)。看看。