Я пытаюсь запросить диапазон данных, которые не организованы по месяцам, но имеют порядковые значения. У меня есть 13 пронумерованных документов в год на человека (данные упрощены):
{ "Year" : 2015, "Pts" : 92, "Week" : 1 },
{ "Year" : 2015, "Pts" : 110.3, "Week" : 2 },
{ "Year" : 2015, "Pts" : 104.2, "Week" : 3 },
{ "Year" : 2015, "Pts" : 130.9, "Week" : 4 },
{ "Year" : 2015, "Pts" : 129, "Week" : 5 },
{ "Year" : 2016, "Pts" : 90, "Week" : 1 },
{ "Year" : 2016, "Pts" : 110.5, "Week" : 2 },
{ "Year" : 2016, "Pts" : 106, "Week" : 3 },
{ "Year" : 2016, "Pts" : 150.4, "Week" : 4 },
{ "Year" : 2016, "Pts" : 110, "Week" : 5 },
{ "Year" : 2017, "Pts" : 86.2, "Week" : 1 },
{ "Year" : 2017, "Pts" : 120.2, "Week" : 2 },
{ "Year" : 2017, "Pts" : 111, "Week" : 3 },
{ "Year" : 2017, "Pts" : 105.5, "Week" : 4 }
{ "Year" : 2017, "Pts" : 95.5, "Week" : 5 }
Я не могу понять, как получить данные, например, с 3 недели 2015 года до 3 недели 2017 года. Когда я использую следующий шаблон совпадения, он будет тянуть только недели 3 и выше для всех лет (недели 1-2 отсутствуют в результатах за 2017 и 2018 годы):
{
$match:
{
Week: { $gte: weekStart, $lte: weekEnd },
Year: { $gte: startYear, $lte: endYear }
}
},
Я пытался использовать $, чтобы не исключать документы вне диапазона, но я получаю ошибку unknown top level operator: $not
. Я также пробовал каскадировать $ и операторы, но это тоже не работает.
Любая помощь приветствуется!