我必须执行搜索查询(此处的性能很重要),可以按我的文档的最低价格进行排序。为了让您了解一下,这是我拥有的两种价格对象类型的结构:
"_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月将首先返回第二个文档