在MongoDB中按嵌入式对象中的最小值排序

时间:2018-07-27 11:40:57

标签: mongodb sorting

我必须执行搜索查询(此处的性能很重要),可以按我的文档的最低价格进行排序。为了让您了解一下,这是我拥有的两种价格对象类型的结构:

"_id": 123345
"price" : {
        "type" : "monthly", 
        "prices" : {
            "january" : NumberInt(675), 
            "february" : NumberInt(675), 
            "march" : NumberInt(675), 
            "april" : NumberInt(675), 
            "may" : NumberInt(675), 
            "june" : NumberInt(675), 
            "july" : NumberInt(540), 
            "august" : NumberInt(540), 
            "september" : NumberInt(675), 
            "october" : NumberInt(675), 
            "november" : NumberInt(675), 
            "december" : NumberInt(675)
        }
}, 



"_id": 678910
"price" : {
            "type" : "full_year", 
            "price" : NumberInt(600)
}

如您所见,我的文档每个月或每个季节的价格都可以相同。如果要按一年内的最小值进行搜索,则可以计算一个新字段,该字段是每个月的最小值,并且可以轻松地对它进行排序。

我的问题是,当用户浏览仅2个月时,请说“ 9月”和“ 10月”。我可以执行哪种查询,可以按最低价格排序,要么查看价格字段(如果是full_year类型),要么仅使用用户正在寻找的两个月内的最小值。

在我的示例中,按最低价格排序的9月/ 10月将首先返回第二个文档

0 个答案:

没有答案