限制和排序MongoDB中的内联Map / Reduce

时间:2012-02-09 11:31:47

标签: mongodb

据我所知,我无法在Mongo中指定复杂的排序函数,因此我必须使用map / reduce查询,因​​为我甚至不使用reduce部分,所以感觉有点无用。这很好,但它返回的集合太大,我需要排序和限制它(paginate)。是否可以通过内联呼叫进行此操作?我无法存储生成的集合,然后查询它,因为该集合对每个用户都是唯一的,并且不断变化。

1 个答案:

答案 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)。看看。