MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Attributi multilingue in MongoDB

I consigli all'ingrosso sulla progettazione dello schema potrebbero essere un argomento un po' ampio di discussione qui. Posso tuttavia suggerire di considerare di inserire gli elementi che stai mostrando in un Array di documenti secondari, anziché il singolo documento secondario con campi per ogni elemento.

{ 
    sku: "1011",
    name: [{ "en": "cheese" }, {"de": "Käse"}, {"es": "queso"}, etc... ],
    price: [{ "usd": 30.95 }, { "eur": 20 }, { "aud": 40 }, etc... ]
} 

Il motivo principale è la considerazione dei percorsi di accesso ai tuoi elementi che dovrebbero rendere le cose più facili da interrogare. L'ho esaminato in dettaglio qui che potrebbe valere la pena di leggere.

Potrebbe anche essere una possibilità per espandere questo per qualcosa come il campo del tuo nome:

    name: [
        { "lang": "en", "value": "cheese" },
        { "lang": "de", "value: "Käse"  },
        { "lang": "es", "value": "queso" },
        etc...
    ]

Tutto dipenderebbe dai tuoi requisiti di indicizzazione e accesso. Tutto dipende davvero da ciò di cui ha bisogno esattamente la tua applicazione e il bello di MongoDB è che ti consente di strutturare i tuoi documenti in base alle tue esigenze.

P.S Per quanto riguarda tutto ciò in cui stai conservando Denaro valori, ti consiglio di fare un po' di lettura e di iniziare magari con questo post qui:

MongoDB - Che dire del tipo decimale di valore?