На уровне API по той причине, которую вы упомянули: вы независимы от основного механизма хранения вашего приложения.
Хорошим руководящим принципом является постоянство невежества: сделает вашу бизнес-логику как можно меньше осведомленной о механизме хранения . Это подразумевает, что бизнес-логика также не должна находиться на вашем уровне хранения. Поэтому хранимые процедуры или хранимые функции JavaScript не должны содержать бизнес-логику. Некоторые преимущества этого:
- Вы можете поменять базовую базу данных с минимальными усилиями и без необходимости повторной реализации вашей бизнес-логики в новой базе данных.
- Вся ваша бизнес-логика содержится на уровне приложения, что облегчает понимание и отладку базы кода.
Единственные функции, которые вы должны хранить в MongoDB, это «служебные» функции; функции, которые упрощают обычные операции, такие как строковые операции, но никак не связаны с вашей бизнес-логикой.