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

Multi-sprog attributter i MongoDB

Engrosanbefalinger over dit skemadesign kan være et lidt bredt emne til diskussion her. Jeg kan dog foreslå, at du overvejer at lægge de elementer, du viser, i en Array af underdokumenter i stedet for det ene underdokument med felter for hvert element.

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

Hovedårsagen til dette er overvejelser om adgangsstier til dine elementer, hvilket skulle gøre tingene lettere at forespørge. Dette gennemgik jeg i nogle detaljer her som kan være værd at læse.

Det kunne også være en mulighed at udvide dette til noget som dit navnefelt:

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

Alt vil afhænge af dine indekserings- og adgangskrav. Det hele afhænger virkelig af, hvad præcis din applikation har brug for, og det smukke ved MongoDB er, at det giver dig mulighed for at strukturere dine dokumenter efter dine behov.

P.S. Med hensyn til alt, hvor du gemmer penge værdier, foreslår jeg, at du læser lidt og måske begynder med dette indlæg her:

MongoDB - Hvad med decimaltype af værdi?




  1. MongoDB:Tæller hvor mange af hver adskilte værdier der er?

  2. Håndtering af brugerdefineret BSON Marshaling

  3. Meteor - Hvorfor skal jeg bruge this.userId over Meteor.userId() når det er muligt?

  4. Hvorfor tager en Redis dump.rdb-fil på 500 MB omkring 5,0 GB hukommelse?