English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
I dati di MongoDB hanno uno schema flessibile schema.documents all'interno della stessa raccolta. I documenti nella stessa raccolta. Non è necessario che abbiano lo stesso set di campi o campi comuni nella struttura della raccolta, i documenti possono contenere dati di diversi tipi.
MongoDB offre due tipi di modelli di dati: modello di dati embedded e modello di dati normalizzato. In base alle esigenze, è possibile utilizzare uno dei due modelli durante la preparazione dei documenti.
In questo modello, puoi mettere tutti i dati correlati (inseriti) in un documento, il che si chiama anche modello di dati non normalizzato.
Ad esempio, supponiamo che otteniamo i dettagli dell'impiegato in tre documenti diversi (Dettagli_personali, Contatto e Indirizzo). Puoi inserire tutti e tre i documenti in un documento, come indicato di seguito:
{ _id:, Emp_ID: "10025AE336" Dettagli_personali:{ Nome: "Radhika" Cognome: "Sharma" Data_Di_Nascita: "1995-09-26" } Contatto: { e-mail: "[email protected]" telefono: "9848022338" } Indirizzo: { città: "Hyderabad", Area: "Madapur", Stato: "Telangana" } }
In questo modello, puoi usare riferimenti per fare riferimento ai sottodocumenti del documento originale. Ad esempio, puoi riscrivere il seguente documento come modello normalizzato:
Impiegato:
{ _id: ObjectId101> Emp_ID: "10025AE336" }
Dettagli_personali:
{ _id: ObjectId102> empDocID: "ObjectId101" Nome: "Radhika" Cognome: "Sharma" Data_Di_Nascita: "1995-09-26" }
Contatto:
{ _id: ObjectId103> empDocID: "ObjectId101" e-mail: "[email protected]" telefono: "9848022338" }
Indirizzo:
{ _id: ObjectId104> empDocID: "ObjectId101" città: "Hyderabad", Area: "Madapur", Stato: "Telangana" }
Progetta la struttura in base alle richieste dell'utente.
Se li si utilizza insieme, li si combinano in un documento. Altrimenti, li si separa (ma assicurati che non siano necessarie connessioni).
Copia i dati (ma con limiti), perché lo spazio su disco è più economico rispetto al tempo di calcolo.
Effettua le connessioni durante la scrittura, non durante la lettura.
Ottimizza la tua soluzione per i casi d'uso più comuni.
Esegui aggregazioni complesse nella struttura.
Supponiamo che il cliente debba progettare un database per il suo blog/sito web e vedere le differenze tra la progettazione del modello RDBMS e MongoDB. Il sito ha i seguenti requisiti.
Ogni post ha un titolo unico, una descrizione e un URL.
Ogni post può avere una o più etichette.
Ogni post ha il nome del pubblicatore e il numero totale di mi piace.
Ogni post ha commenti forniti dagli utenti, i loro nomi, messaggi, dati di tempo e mi piace.
Su ogni post, possono esserci zero o più commenti.
Nell'architettura RDBMS, il design necessario per le richieste sopra elencate avrà almeno tre tabelle.
Nel modello MongoDB, il design avrà una collezione di帖子 e la seguente struttura-
{ _id: POST_ID title: TITLE_OF_POST, description: POST_DESCRIPTION, by: POST_BY, url: URL_OF_POST, tags: [TAG1, TAG2, TAG3], likes: TOTAL_LIKES, comments: [ { user:'COMMENT_BY', message: TEXT, dateCreated: DATE_TIME, like: LIKES } { user:'COMMENT_BY', message: TEXT, dateCreated: DATE_TIME, like: LIKES } ] }
Quindi, quando si visualizzano i dati, in un RDBMS, è necessario connettere tre tabelle, mentre in MongoDB, i dati verranno visualizzati da una sola collezione.