Node ORM Comparison Table
• John Vandivier
This article contains table data for a comparison of NodeJS ORMs. Data can also be viewed on <a href="https://docs.google.com/spreadsheets/d/1sSbY8SLWA9lvvnTHX41t0TVPXwZ4A4ddO_KJMa20fA4/edit?usp=sharing">this Google Doc.
| DB Support | Generate Schema and Tables | Generate API | Webpack | Express | Performance | Syntax | Star-to-Issue* | Normalized Star-to-Issue | Extra Features | Maintenence | Documentation | TOTAL | |
| mapper | 5 | 0 | 0 | 3 | 3 | 8 | 5 | 35 | 2 | 0 | 1 | 5 | 32 |
| persistence.js | 2 | 5 | 0 | 3 | 3 | 5 | 5 | 23 | 1 | 5 | 1 | 5 | 35 |
| sequelize | 4 | 8 | 0 | 3 | 5 | 7 | 5 | 42 | 3 | 5 | 10 | 8 | 58 |
| Node ORM2 | 8 | 8 | 0 | 3 | 7 | 5 | 8 | 13 | 1 | 6 | 6 | 6 | 58 |
| Bookshelf.js | 4 | 6 | 0 | 3 | 3 | 5 | 3 | 19 | 1 | 0 | 4 | 8 | 37 |
| objection.js | 4 | 8 | 0 | 8 | 6 | 5 | 5 | 75 | 5 | 3 | 8 | 8 | 55 |
| mongoose | 1 | 10 | 5 | 2 | 6 | 5 | 3 | 58 | 4 | 7 | 10 | 10 | 63 |
| waterline | 7 | 8 | 5 | 3 | 5 | 5 | 4 | 160 | 10 | 5 | 10 | 8 | 70 |
| js-data | 8 | 5 | 0 | 3 | 8 | 5 | 3 | 29 | 2 | 0 | 5 | 8 | 47 |
| typeorm | 8 | 8 | 5 | 3 | 6 | 5 | 5 | 29 | 2 | 5 | 7 | 8 | 62 |
| caminte | 9 | 8 | 6 | 3 | 5 | 5 | 8 | 10 | 1 | 7 | 4 | 8 | 58 |
| jugglingdb | 9 | 8 | 0 | 3 | 3 | 5 | 5 | 30 | 2 | 0 | 4 | 7 | 46 |
| loopback | 9 | 8 | 8 | 3 | 5 | 5 | 5 | 84 | 5 | 8 | 10 | 9 | 75 |
What do you think of this result? Leave a comment or contribute you thoughts to <a href="https://www.slant.co/improve/topics/11235/~javascript-orms">this Slant comparison.