MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Attributs multilingues dans MongoDB

Les recommandations de gros sur la conception de votre schéma peuvent être un sujet de discussion un peu large ici. Je peux cependant vous suggérer d'envisager de mettre les éléments que vous montrez dans un tableau de sous-documents, plutôt que le sous-document singulier avec des champs pour chaque élément.

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

La principale raison en est la prise en compte des chemins d'accès à vos éléments, ce qui devrait faciliter les requêtes. J'ai parcouru cela en détail ici qui peut valoir la peine d'être lu.

Cela pourrait également être une possibilité de développer cela pour quelque chose comme votre champ de nom :

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

Tout dépendra de vos exigences d'indexation et d'accès. Tout dépend vraiment de ce dont votre application a exactement besoin, et la beauté de MongoDB est qu'il vous permet de structurer vos documents selon vos besoins.

P.S. En ce qui concerne tout ce où vous stockez de l'argent valeurs, je vous suggère de lire un peu et de commencer peut-être par ce post ici :

MongoDB - Qu'en est-il du type décimal de valeur ?