Sto costruendo una nuova app e ne sto progettando la struttura, ecco alcune riflessioni sul perché usare o meno la mangusta:
- La mangusta sarà più lenta (per grandi app)
- Mongoose è più difficile con query più complicate
- Ci saranno situazioni in cui vorrai più velocità e sceglierai di andare senza mangusta, quindi avrai metà domande con mangusta e metà senza. È una situazione folle, una volta ...
- Mongoose ti farà scrivere codice più velocemente con app semplici con una struttura db semplice
- Mongoose ti farà leggere documenti mongodb E documenti mongoose
- Con mongoose il tuo stack avrà un'altra cosa da cui dipendere ed è un'altra possibilità di schiantarsi e ridursi in cenere.
Il driver mongodb è un driver grezzo, comunichi direttamente con mongodb. la mangusta è uno strato di astrazione. Ottieni un I / O più facile per db mentre la struttura del tuo db è abbastanza semplice.
L'astrazione introduce i suoi requisiti e devi seguirli. La tua app sarà più lenta, consumerà più RAM e sarà più complicata, ma se sai come usarla, puoi scrivere più velocemente oggetti semplici, salvandoli nel database.
Senza mangusta avrai un'applicazione più veloce con connessione diretta a mongodb. Nessuno dice che non puoi scrivere i tuoi modelli per salvare cose su db. Puoi. E penso sia più facile. Scrivi codice, che userai, sai di cosa hai bisogno. Il tuo livello di astrazione sarà molto più piccolo, quindi quello della mangusta.
Vengo dal mondo PHP, lì avevamo sql grezzo con funzioni mysql_ deprezzate, quindi abbiamo ottenuto PDO - livello di astrazione orientato agli oggetti per comunicare con sql. Oppure puoi scegliere un ORM pesante come Doctrine per avere cose simili a mongoose su mongoDB. Oggetti con metodo setter / getters / save e così via. Va bene, ma aggiungendo più astrazione stai aggiungendo più file, più logica, più documentazione, più dipendenze. Mi piace mantenere le cose semplici e avere meno dipendenze nel mio stack. A proposito, è per questo che sono passato da PHP a Javascript server-client in primo luogo ..
Con mongoose penso che sia fantastico scrivere alcune semplici app, che hanno una struttura db semplice simile a sql . Quando inizi ad avere documenti secondari e vuoi fare tutte quelle domande folli, l'ho trovato davvero difficile con la mangusta. Devi guardare i documenti mongodb, quindi guardare i documenti mongoose per scoprire come eseguire una query che desideri. A volte scoprirai che il futuro X di mongodb non è in mongoose, quindi vai al driver mongodb grezzo e scrivi query mongodb non elaborate in uno o in un altro posto. Senza mangusta, guardi i documenti di mongodb e fai la tua domanda.