我可以在mysql上轻松完成
select * from TABLE order by length(FIELD) asc
我怎样才能在 MongoDB 上做到这一点?
我可以在mysql上轻松完成
select * from TABLE order by length(FIELD) asc
我怎样才能在 MongoDB 上做到这一点?
MongoDB 3.4 引入了$strLenCP
最终支持这一点的聚合运算符。一个例子:
db.collection.aggregate(
[
{$project: {
"field": 1,
"field_length": { $strLenCP: "$field" }
}},
{$sort: {"field_length": -1}},
{$project: {"field_length": 0}}
]
)
假设您的架构类似于:
example = {_id: "XXX", text: "YYY"}
db.example.aggregate([
{$project : {text : 1, length : {$size : "$text"}}},
{$sort : {length : 1}}
]);
我认为这可以完成这项工作,但仅适用于 mongo 2.6 及更高版本