mongodb - 如何获取最顶层过滤的文档并对嵌入结果进行排序
问题描述
假设我有以下文档结构。
{
"_id" : "ehbpidnopgpgcghgakiiiallielefonk",
"users" : 11.87,
"ratingTopMost" : {
"average" : NumberInt("4"),
"users" : NumberInt("3174"),
},
"reviews" : {
"average" : NumberInt("5"),
"count" : NumberInt("51"),
"comments" : [
{
"_id" : ObjectId("5b87b1a07267ad001da7e733"),
"name" : "Batista1395",
"comment" : "Great Stackoverflow",
"datum" : ISODate("2017-01-16T00:00:00.000+01:00"),
"rating" : NumberInt("3")
},
{
"_id" : ObjectId("5b87b1a07267ad001da7e732"),
"name" : "Tim Ace",
"comment" : "I Like it.",
"datum" : ISODate("2016-08-17T00:00:00.000+02:00"),
"bewertung" : NumberInt("5")
},
]
},
}
我需要使用以下条件查询前20 个文档:
- rantingTopMost.average 的最高值
- ratingTopMost.users 的最高价值
- reviews.count 的最高价值
- 评论的最高价值。平均
- 为用户带来最高价值
优先级应该从上到下(1 到 5)。
也很高兴:按日期 DESC 对嵌入的评论进行排序。
解决方案
推荐阅读
- python - pandas astype 无法识别固定长度的字节串格式
- python - 用于保存球面点数据的快速 Python 代码
- node.js - 如何为 Sequelize 模型中的特定列设置排序规则?
- c++ - SFINAE 拒绝 GCC8.2 上的类型失败,GCC7.1 可以
- python-3.x - 为什么我不能减少 urllib.parse.urljoin?
- ms-access - 为什么对 MS Access 列表框或组合框进行重新查询会两次调用数据库?
- angular - 自动填充角度材质 从 URL 中选择选项
- javascript - 如何在 Google 应用制作工具中创建此字符计数器?
- css - CSS Grid - 如果包裹,则在各行之间平均划分
- javascript - .load 后未触发 Javascript/JQuery 函数