#dotnet #mongodb
Как-то так повелось, что мы активно используем монгу(и любим ее всем сердцем). У монги есть 2 api. Не вдаваясь в детали, первое покрывает большинство кейсов по выборке документов и все CUD-операции, второе, а именно, aggregation framework, нужно для аналитических выборок и прочих сложных "селектов"(еще есть map-reduce, но это отдельная история). Исторически считается, что AF тормозит и предпочтение всегда отдавалось первому api.
Тут как-то выдалась свободная минутка и я полез разобраться как же в c# драйвере парни linq в монго-запросы транслируют и ушел с неприятным, но довольно логичным, инсайтом: linq транслируется в af-пайплайн. Вроде бы можно и закончить на этом, но чет меня дернуло сходить в коммьюнити с вопросом че щас по перфомансу af. Кароч, парни, щас движок AF сильно потюнили(курсоры-то всегда были одни и те же) и, если для простых выборок выигрыш у простого api еще какой-то есть, то более сложные запросы и удобнее и быстрее делать через AF
Кстати, если кто не знал, в вики монги на гитхабе много статей про кишки
Post #503
264