首页 > 解决方案 > 如何获取最顶层过滤的文档并对嵌入结果进行排序

问题描述

假设我有以下文档结构。

{
    "_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 个文档:

  1. rantingTopMost.average 的最高值
  2. ratingTopMost.users 的最高价值
  3. reviews.count 的最高价值
  4. 评论的最高价值。平均
  5. 为用户带来最高价值

优先级应该从上到下(1 到 5)。

也很高兴:按日期 DESC 对嵌入的评论进行排序。

标签: mongodbmongoosemongodb-query

解决方案


推荐阅读