Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用组对聚合进行mongodb排序_Node.js_Mongodb_Mongoose_Meteor - Fatal编程技术网

Node.js 使用组对聚合进行mongodb排序

Node.js 使用组对聚合进行mongodb排序,node.js,mongodb,mongoose,meteor,Node.js,Mongodb,Mongoose,Meteor,我可以通过使用$group和聚合为集合获取一组不同的文档 let uniqueFoos= Collection.rawCollection().aggregate([ { $group: { _id: 0, foos: { $addToSet: '$foo' } } } ]).toArray().await(); 这很有效。但是如何按字母降序排列foos数组呢?我知道如何独立完成这项

我可以通过使用
$group
聚合
集合
获取一组不同的
文档

let uniqueFoos= Collection.rawCollection().aggregate([
    {
      $group: {
        _id: 0,
        foos: {
          $addToSet: '$foo'
        }
      }
    }
  ]).toArray().await();
这很有效。但是如何按字母降序排列
foos
数组呢?我知道如何独立完成这项工作,但不知道如何将其插入管道。我试过在前后插入它,但都没有用。有什么想法吗


.sort()
链接到
.await()
可以工作,但我想从查询本身开始。谢谢

您可以通过以下管道完成此操作:

[
    {
        $group: {
            _id: "$foo",
        }
    },
    {
        $sort: { "_id": -1 }
    },
    {
        $group: {
            _id: 0,
            foos: {
              $push: '$_id'
            }
        }
    }
]
[
    {
        $group: {
            _id: "$profile.name",
        }
    },
    {
        $sort: { "_id": -1 }
    }
]
但我认为,如果只对数据进行分组和排序(而不在查询中构建数组),效果会更好。尝试以下管道:

[
    {
        $group: {
            _id: "$foo",
        }
    },
    {
        $sort: { "_id": -1 }
    },
    {
        $group: {
            _id: 0,
            foos: {
              $push: '$_id'
            }
        }
    }
]
[
    {
        $group: {
            _id: "$profile.name",
        }
    },
    {
        $sort: { "_id": -1 }
    }
]
然后在代码中使用结果数组

注意:还要注意,MongoDB有方法,但您必须在js代码中对结果进行排序。

这有助于: