MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Atributos multilíngue no MongoDB


As recomendações de atacado sobre o design do seu esquema podem ser um tópico um pouco amplo para discussão aqui. No entanto, posso sugerir que você considere colocar os elementos que está mostrando em um Array de subdocumentos, em vez do subdocumento singular com campos para cada item.
{ 
    sku: "1011",
    name: [{ "en": "cheese" }, {"de": "Käse"}, {"es": "queso"}, etc... ],
    price: [{ "usd": 30.95 }, { "eur": 20 }, { "aud": 40 }, etc... ]
} 

A principal razão para isso é a consideração de caminhos de acesso aos seus elementos, o que deve facilitar a consulta. Isso eu passei com alguns detalhes aqui que pode valer a sua leitura.

Também pode ser uma possibilidade de expandir isso para algo como seu campo de nome:
    name: [
        { "lang": "en", "value": "cheese" },
        { "lang": "de", "value: "Käse"  },
        { "lang": "es", "value": "queso" },
        etc...
    ]

Tudo dependeria de seus requisitos de indexação e acesso. Tudo realmente depende do que exatamente seu aplicativo precisa, e a beleza do MongoDB é que ele permite que você estruture seus documentos de acordo com suas necessidades.

P.S. Quanto a qualquer coisa em que você esteja armazenando dinheiro valores, sugiro que você faça uma leitura e comece talvez com este post aqui:

MongoDB - E quanto ao tipo decimal de valor?