MongDB如何按字符串长度排序?



  • 假设集合Songs的文档结构如下:

    {
       "SongName":"约定",
       "Singer":"周蕙",
       "Length":"4:19"
    }
    {
       "SongName":"城里的月光",
       "Singer":"许美静",
       "Length":"5:21"
    }

    现在要按SongName字段的长度从小到大排序,如何实现?


  • Lv 1

    @x4_965be

    一個可行做法是先算出長度再進行排序, 如

    db.yyy.insertMany([
    {
       "SongName":"约定",
       "Singer":"周蕙",
       "Length":"4:19"
    },
    {
       "SongName":"城里的月光",
       "Singer":"许美静",
       "Length":"5:21"
    }]);
    db.yyy.aggregate([
        {
            $project: {
                SongName: 1,
                Singer: 1,
                Length: 1,
                byteLength: { $strLenBytes: '$SongName' }
            }
        },
        { $sort: { byteLength: 1 } }
    ]);

登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待