MongoDB: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
m Annullate le modifiche di 88.147.88.80 (discussione), riportata alla versione precedente di 93.34.76.123 Etichetta: Rollback |
||
Riga 7:
|SoftwareLibero = sì
}}
'''MongoDB''' (
Sviluppato inizialmente dalla società di software 10gen (ora diventata
== Storia ==
Riga 19:
== Licenza e supporto ==
MongoDB è disponibile gratuitamente sotto la [[GNU Affero General Public License]].<ref>[http://blog.mongodb.org/post/103832439/the-agpl MongoDB rilasciato sotto la licenza AGPL]</ref> Le librerie per i vari linguaggi sono disponibili sotto la Apache License. In aggiunta, MongoDB Inc. offre licenze commerciali per MongoDB.<ref>[https://www.mongodb.com/products/subscriptions Le sottoscrizioni di MongoDB]</ref>
== Caratteristiche principali ==
Alcune delle caratteristiche principali sono:
'''[http://docs.mongodb.org/manual/crud/ Query ad hoc]'''
* MongoDB supporta ricerche per campi, intervalli e regular expression. Le query possono restituire campi specifici del documento e anche includere funzioni definite dall'utente in JavaScript.
'''[http://docs.mongodb.org/manual/indexes/ Indicizzazione]'''
* Qualunque campo in MongoDB può essere indicizzato (gli indici in MongoDB sono concettualmente similari a quelli dei tradizionali RDBMS). Sono disponibili anche indici secondari, indici unici, indici sparsi, indici geospaziali e indici full text.
'''[http://docs.mongodb.org/manual/replication/ Alta Affidabilità]'''
* MongoDB fornisce alta disponibilità e aumento del carico gestito attraverso i replica set. Un replica set consiste in due o più copie dei dati. Ogni replica può avere il ruolo di copia primaria o secondaria in qualunque momento. La replica primaria effettua tutte le scritture e le letture. Le repliche secondarie mantengono una copia dei dati della replica primaria attraverso un meccanismo di replicazione incluso nel prodotto. Quando una replica primaria fallisce, il replica set inizia automaticamente un processo di elezione per determinare quale replica secondaria deve diventare primaria. Le copie secondarie possono anche effettuare letture, con dati eventualmente consistenti di default.
'''[http://docs.mongodb.org/manual/sharding/ Sharding e bilanciamento dei dati]'''
* MongoDB scala orizzontalmente usando lo sharding. L'utente deve scegliere una chiave di sharding, che determina come i dati di una collection saranno distribuiti tra i vari nodi. I dati sono divisi in intervalli (basati sulla chiave di shard) e distribuiti su molteplici shard (uno shard è un replica set, quindi con una replica primaria e due o più repliche secondarie).
* MongoDB include un meccanismo di bilanciamento dei dati, spostando gli intervalli di dati da uno shard troppo carico ad uno shard meno carico, in modo da bilanciare la distribuzione dei dati all'interno del cluster.
'''[http://docs.mongodb.org/manual/core/gridfs/ File Storage]'''
* MongoDB può essere usato anche come un file system, traendo vantaggio dalla caratteristiche di replicazione e di bilanciamento su più server per memorizzare file, anche di grandi dimensioni.
* Questa funzione, chiamata GridFS, è inclusa nei drivers di MongoDB e disponibile facilmente per tantissimi linguaggi di sviluppo. MongoDB espone delle funzioni per la manipolazione dei file. GridFS è usato, ad esempio, nei plugin di NGINX e lighttpd. Invece di memorizzare il file in un singolo documento, GridFS divide il file in tante parti più piccole, chiamate chunks, e memorizza ognuno di questi chunk in un documento separato.
* Ai file possono essere associati dei metadati, su cui è possibile anche creare degli indici full-text.
'''[http://docs.mongodb.org/manual/aggregation/ Aggregazione]'''
* MongoDB supporta due modalità di aggregazione dei dati: il MapReduce e l'Aggregration Framework. Quest'ultimo lavora come una pipeline e permette di ottenere risultati molto più rapidamente del MapReduce grazie all'implementazione in C++.
'''[http://docs.mongodb.org/manual/core/capped-collections/ Capped Collection]'''
* MongoDB supporta collection a dimensioni fisse chiamate capped collection. Questo tipo di collection mantengono l'ordine di inserimento e una volta raggiunta la dimensione definita, si comportano come code circolari.
== Supporto linguaggi di programmazione ==
|