如何在MongoDB中按其文档的内容对数组进行排序

How to sort an Array by the content of its documents in MongoDB

本文关键字:数组 排序 文档 MongoDB      更新时间:2023-09-26

我从MongoDB-Shell中的JavaScript函数运行以下命令:

db._adminCommand( {listDatabases: 1}).databases

这给了我:

[
    {
        "name" : "local",
        "sizeOnDisk" : 83886080,
        "empty" : false
    },
    {
        "name" : "time",
        "sizeOnDisk" : 83886080,
        "empty" : false
    },
    {
        "name" : "event",
        "sizeOnDisk" : 83886080,
        "empty" : false
    },
    {
        "name" : "admin",
        "sizeOnDisk" : 1,
        "empty" : true
    },
    {
        "name" : "test",
        "sizeOnDisk" : 1,
        "empty" : true
    }
]

是否可以以某种方式按字段名称中的值对该数组中的文档进行排序?

最后我想得到:

[
    {
        "name" : "admin",
        "sizeOnDisk" : 1,
        "empty" : true
    },
    {
        "name" : "event",
        "sizeOnDisk" : 83886080,
        "empty" : false
    },
    {
        "name" : "local",
        "sizeOnDisk" : 83886080,
        "empty" : false
    },
    {
        "name" : "test",
        "sizeOnDisk" : 1,
        "empty" : true
    },
    {
        "name" : "time",
        "sizeOnDisk" : 83886080,
        "empty" : false
    }
]

使用排序方法:

db._adminCommand( {listDatabases: 1}).databases.sort(function(item1, item2){return item1.name > item2.name})