我想按特定字符串属性的长度对查找结果进行排序。我的架构有一个子属性“comment”,我想按注释的长度排序。 我正在运行这样的查找查询。
Model.find(query, callback)
.sort({ 'review.comment.length' : -1 })
架构:
feedback = new Schema({
review: {type: content}
})
content = new Schema({
comment: {type: String},
date: {type: Date}
})
但这不起作用。有人可以帮助解决正确的问题吗?
答案 0 :(得分:2)
您可以使用aggregate框架和$strLenCP
来实现此目标
像
这样的东西db.collection.aggregate(
[
{
{$match : {property : 'value'}} //This is your filter criteria
$project: {
length: { $strLenCP: "$review.comment" }
}
},
{$sort:{length: -1}}
]
)