Rekomendacje hurtowe dotyczące projektu schematu mogą być tutaj nieco obszernym tematem do dyskusji. Mogę jednak zasugerować, abyś rozważył umieszczenie wyświetlanych elementów w tablicy dokumentów podrzędnych, a nie pojedynczego dokumentu podrzędnego z polami dla każdego elementu.
{
sku: "1011",
name: [{ "en": "cheese" }, {"de": "Käse"}, {"es": "queso"}, etc... ],
price: [{ "usd": 30.95 }, { "eur": 20 }, { "aud": 40 }, etc... ]
}
Głównym tego powodem jest rozważenie ścieżek dostępu do elementów, które powinny ułatwić wyszukiwanie. Omówiłem to szczegółowo tutaj które mogą być warte przeczytania.
Może to być również możliwość rozwinięcia tego o coś takiego jak pole imienia i nazwiska:
name: [
{ "lang": "en", "value": "cheese" },
{ "lang": "de", "value: "Käse" },
{ "lang": "es", "value": "queso" },
etc...
]
Wszystko zależy od Twoich wymagań dotyczących indeksowania i dostępu. Wszystko naprawdę zależy od tego, czego dokładnie potrzebuje Twoja aplikacja, a piękno MongoDB polega na tym, że pozwala Ci uporządkować dokumenty zgodnie z Twoimi potrzebami.
PS. Jeśli chodzi o wszystko, w którym przechowujesz pieniądze wartości, proponuję przeczytać trochę i zacząć może od tego postu tutaj:
MongoDB - Co z typem dziesiętnym wartość?