Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Mongodb 如何编写Mongo聚合以在数组中按元素排序_Mongodb_Sorting_Aggregation Framework - Fatal编程技术网

Mongodb 如何编写Mongo聚合以在数组中按元素排序

Mongodb 如何编写Mongo聚合以在数组中按元素排序,mongodb,sorting,aggregation-framework,Mongodb,Sorting,Aggregation Framework,以下是一个例子: {_id: 111, sort: [{order:1}, {order:3}]} {_id: 222, sort: [{order:2}, {order:5}]} {_id: 333, sort: [{order:1}, {order:3}, {order:4}]} 我想按排序。从大到小排序,然后 {_id: 222, sort: {order:5}} {_id: 333, sort: {order:4}} {_id: 111, sort: {order:3}} 您需要与他

以下是一个例子:

{_id: 111, sort: [{order:1}, {order:3}]}
{_id: 222, sort: [{order:2}, {order:5}]}
{_id: 333, sort: [{order:1}, {order:3}, {order:4}]}
我想按排序。从大到小排序,然后

{_id: 222, sort: {order:5}}
{_id: 333, sort: {order:4}}
{_id: 111, sort: {order:3}}
您需要与他们联系以确定哪一个具有最高值,然后将其分组以仅获取一个:

db.col.aggregate([
    { $unwind: "$sort" },
    { $sort: { "sort.order": -1 } },
    {
        $group: {
            _id: "$_id",
            sort: { $first: "$sort" }
        }
    },
    { $sort: { "sort.order": -1 } },
])
您需要与他们联系以确定哪一个具有最高值,然后将其分组以仅获取一个:

db.col.aggregate([
    { $unwind: "$sort" },
    { $sort: { "sort.order": -1 } },
    {
        $group: {
            _id: "$_id",
            sort: { $first: "$sort" }
        }
    },
    { $sort: { "sort.order": -1 } },
])