sorting - MongoDB 按子文档计数排序

标签 sorting mongodb

我有一个看起来像这样的文档:

{
        "_id" : ObjectId("4e84f78b26d2046d5d00b5b2"),
        "parent_id" : 0,
        "ratings" : [
                "20716",
                "78167"
        ],
        "text" : "test"
}

是否可以按“评分”数量排序?做类似的事情:

db.comments.find().sort({rating.count(): -1})

抛出错误:

SyntaxError: missing : after property id (shell):0

最佳答案

已经有一个标记的答案,但我想我应该补充一点,这可以使用聚合框架来完成:

db.comments.aggregate( [
   { $unwind: "$ratings" },
   { $group : { _id : { parent_id: "$parent_id", text: "$text"  }, 
                ratingsCount : { $sum : 1 } } },
   { $sort : { ratingsCount : -1 } }
] )

关于sorting - MongoDB 按子文档计数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7613801/

相关文章:

objective-c - NSSortComparator 对 NSMutableArray 没有影响

Javascript:按数组的第一个字符排序

node.js - 如何在nodejs mongodb驱动程序中使用mongoclient设置读取偏好次要?

MongoDB:在对象数组内部的数组中聚合分组对象

node.js - 如何在 Mongoose 中填充嵌套实体?

JavaScript - 根据特殊顺序按属性对对象数组进行排序

c - C 中的二分搜索 - 陷入循环

python - 在二维数组的列内排名

javascript - 仅在满足特定条件时才使用 $in 运算符 - Mongoose

mongodb - 如何使用 mgo 和 Go 查询具有日期范围的 MongoDB?