mongoDB
9/10 times you dont need this, a regular relational database is good enough
where mongo really shines is that 1/10 for example with online games like a MMORPG
i would argue a platform like discord here would also be good, where users have different profiles (nitro) roles, permissions per server
in moments like this you throw the data in without a worry, a regular relational database wouldn't work so great here
prisma
great for proof of concepts demos and small scale projects it's simple quick and easy to setup without much trouble
it will become a problem when the application grows over time, this even gets worse when things like many to many relations needs to be brought in
this will get messy real fast, the way prisma handles nested data is a mess
typeOrm
complex, requires code to get things right, and would't work out of the box, you are expected to define things your self using entity schemas
before typeorm will understand, but YOU are in control and once it is working, it is truely a powerhouse
in short this is more for power users
microOrm
simular like typeOrm, i think this is just a preference of syntax, i dont have any experience working with this one but felt to at least mention it
SQL (no ORM)
good old queries, old and fashioned, nothing wrong in particular, but these days people rather avoid it
you have to write queries, a mistake with user input and you have a SQL injection and by by database, but if you know your way and know your security it is a great tool none the less
still think people should start here before learning a ORM
conclusion
there isn't a best ORM they all got their ups and downs, stick with what works best, depending on the requirements of the project
ask your self these questions
- is the project big or small
- is there going to be a lot of data stored
- is this data consistent
then decide either alone or together what to use