У меня есть 100000 документов, и мне нужно получить 10 лучших документов с самыми высокими значениями.
Вот пример упрощенного документа:
{
"_id" : ObjectId( "4f2fbeb0369a2ba603000000" ),
"usage" : {
"2012" : {
"2" : {
"project" : {
"4f182a76369a2b2903000000" : {
"site" : {
"1" : 5,
"2" : 1
}
}
}
}
}
}
}
Значение, которое сортирует/ limit будет применен к может быть найден в 'using.2012.2.project.4f182a76369a2b2903000000.site.1' (в случае вышеприведенного примера значение равно 5).
Проблема в том, что в некоторыхДокументы этот объект существует, в других это не будет.
Теперь я мог бы использовать $ существующие, чтобы проверить, существует ли объект, но в соответствии с руководством MongoDB использование $ Существует неэффективно.Есть ли альтернативные способы, которыми я мог бы сделать это?Я могу изменить схему, если требуется, чтобы удовлетворить ..