MongDB如何按字符串长度排序?
-
假设集合Songs的文档结构如下:
{
"SongName":"约定",
"Singer":"周蕙",
"Length":"4:19"
}
{
"SongName":"城里的月光",
"Singer":"许美静",
"Length":"5:21"
}现在要按SongName字段的长度从小到大排序,如何实现?
-
一個可行做法是先算出長度再進行排序, 如
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 } }
]);