如何根据字符串属性的长度对mongodb进行排序?

时间:2018-04-18 16:00:29

标签: javascript node.js mongodb mongoose

我想按特定字符串属性的长度对查找结果进行排序。我的架构有一个子属性“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}
})

但这不起作用。有人可以帮助解决正确的问题吗?

1 个答案:

答案 0 :(得分:2)

您可以使用aggregate框架和$strLenCP来实现此目标

这样的东西
db.collection.aggregate(
 [
  {
    {$match : {property : 'value'}} //This is your filter criteria
     $project: {

        length: { $strLenCP: "$review.comment" }
     }
  },
   {$sort:{length: -1}}
 ]
)