Suggerimenti e trucchi per MongoDB: 50 Tips and Tricks for MongoDB Developers di Kristina Chodorow

Dopo questo articolo di più di un anno fa, oggi torniamo a parlare di MongoDB.

In particolare parleremo di questo libro: 50 Tips and Tricks for MongoDB Developers
mongodbtricks
Questo breve libro racchiude dei consigli, corredati di esempi, su come utilizzare il database NoSQL MongoDB in modo corretto. Può capitare ad esempio che essendo abituati all’utilizzo di database relazionali, questa abitudine si rifletta sul nostro modo di utilizzare MongoDB: al contrario questo tipo di database è profondamente differente, e va utilizzato dimenticandoci o quasi tutto ciò che sappiamo sui database relazionali.

Esempi dei suggerimenti dell’autrice del libro:

  • Quando embeddare un’informazione? Quando invece inserirla in un documento a parte? Domanda complessa, l’autrice esamina quelli che sono tutti i parametri che vanno presi in considerazione durante questo processo decisionale: prendendo la decisione di embeddare delle informazioni, cioè incorporarle tutte in un sottodocumento, si accettano possibili inconsistenze (anche solo temporanee, ad esempio bonificabili ad intervalli di tempo fissati tramite script batch) ma si ottengono performance migliori, dato che non sono necessarie query extra per recuperare questi dettagli. Altri parametri sono poi presi in considerazione, come numero di letture vs scritture (è sconsigliato embeddare un campo che cresce molto, ad esempio un array con centinaia di documenti, dato che l’operazione di append di sottodocumenti è poco efficiente)
  • Best practices quali l’inizializzazione dei campi previsti anche quando inizialmente sprovvisti di valore, spiegata dal punto di vista prestazionale, e l’operazione affine di preallocazione dello spazio quando è previsto che un documento crescerà considerevolmente già al momento della sua creazione
  • Array vs documents quando sono intercambiabili? Quando non lo sono? E perchè? (Nell’ambito delle ricerche, se sappiamo cosa cercare meglio un document, quando invece dovremmo scorrere tutto la situazione si capovolge ed è consigliato l’utilizzo degli array)
  • MongoDB offre funzionalità avanzate ($where, altre funzioni logiche esprimibili in JS), ma non significa che dobbiamo abusarne, anzi il loro utilizzo viene sconsigliato nel libro tranne quando indispensabile.
  • Cosa si cela dietro gli oggetti ObjectId ? Quando utilizzarli e quando invece preferire un identificativo proprio?
  • Il fatto che siano presenti le references non significa che dobbiamo usarle come fossero “JOIN”, andando a ricostruire un modello relazionale sopra MongoDB: soprattutto da un punto di vista relazionale sono sconsigliate: si tratta di query doppie in fondo, da evitare a causa delle povere performance.

Nei prossimi giorni ulteriori esempi tratti dal libro..

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *