sql >> Databáze >  >> NoSQL >> MongoDB

Vícejazyčné atributy v MongoDB

Velkoobchodní doporučení týkající se vašeho návrhu schématu mohou být trochu širokým tématem k diskusi zde. Mohu vám však navrhnout, abyste zvážili umístění prvků, které zobrazujete, do Pole dílčích dokumentů, spíše než jednotlivých dílčích dokumentů s poli pro každou položku.

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

Hlavním důvodem je zohlednění přístupových cest k vašim prvkům, což by mělo usnadnit dotazování. Toto jsem si podrobně prošel zde který může stát za přečtení.

Mohla by to být také možnost rozšířit to o něco jako pole vašeho jména:

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

Vše bude záviset na vašich požadavcích na indexování a přístup. Vše opravdu závisí na tom, co přesně vaše aplikace potřebuje, a krása MongoDB je v tom, že vám umožňuje strukturovat dokumenty podle vašich potřeb.

P.S. Co se týče čehokoli, kde ukládáte Peníze hodnoty, doporučuji vám něco přečíst a začít možná tímto příspěvkem zde:

MongoDB – A co desetinný typ hodnotu?




  1. Čtení z Kinesis dává prázdné záznamy při spuštění s předchozím pořadovým číslem nebo časovým razítkem

  2. Návratová hodnota meteoru jako řetězec

  3. Instalace MongoDB PowerPC pro Squeeze

  4. Ukládejte související klíče jako OID nebo řetězce v MongoDB