如何按Mongodb排序

时间:2014-03-20 13:30:41

标签: mongodb

我正在进行分组操作,计算每个组的条目数。这是代码:

db.feeds.group({key:{link:1, 'subtitle_detail.base':1}, reduce:function(curr,result){
        result.count++
    },
    initial: {count: 0}
    })

此代码返回一个数组。如何修改代码,以便数组按降序排序,按计数?

2 个答案:

答案 0 :(得分:1)

如果使用aggregation framework而不是group(),则可以使用管道中的其他排序阶段轻松实现此目的:

db.feeds.aggregate([
    {$group:{
        _id:{link:"$link", base:"$subtitle_detail.base"}, 
        count:{$sum:1}}},
    {$sort:{count:1}}
])

答案 1 :(得分:0)

如果您有大量文档,sort 会耗尽内存。如果发生这种情况,您可以通过添加选项 allowDiskUse 来告诉管道在磁盘上而不是在内存中排序:

db.feeds.aggregate([
    {$group:{
        _id:{link:"$link", base:"$subtitle_detail.base"}, 
        count:{$sum:1}}},
    {$sort:{count:1}}
],
{allowDiskUse: True})