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

mongodb php - hvordan man laver INNER JOIN-lignende forespørgsel

MongoDB understøtter ikke joins. Hvis du vil kortlægge brugere til nyhederne, kan du gøre følgende

1) Gør dette på applikationslaget. Få listen over brugere, og få listen over nyheder og kortlæg dem i din applikation. Denne metode er meget dyr, hvis du har brug for dette ofte.

2) Hvis du har brug for at udføre det forrige trin ofte, bør du redesigne dit skema, så nyhedsartiklerne gemmes som indlejrede dokumenter sammen med brugerdokumenterne.

    {
      "_id": "4ca30373fd0e910ecc000007",
      "login": "user22",
      "pass": "example_pass",
      "date": "2010-09-29"
      "news" : [{  
                   "name": "news 222",
                   "content": "news content 2222",
                   "date": "2010-09-29" 
                }, 
                {
                   "name": "news 222",
                   "content": "news content 2222",
                   "date": "2010-09-29"
                }]
    }

Når du har dine data i dette format, er den forespørgsel, du forsøger at køre, implicit. En ting at bemærke er dog, at analyseforespørgsler bliver vanskelige på sådan et skema. Du skal bruge MapReduce for at få de senest tilføjede nyhedsartikler og sådanne forespørgsler.

I sidste ende afhænger skemadesignet og hvor meget denormalisering din applikation kan håndtere af, hvilken slags forespørgsler du forventer at din applikation skal køre.

Du kan finde disse links nyttige.http://www.mongodb.org/display/DOCS/Schema+Designhttp://www.blip.tv/file/3704083

Jeg håber, det var nyttigt.



  1. Hvordan skifter jeg mellem redis-databasen?

  2. problemer med at indstille selleri opgaver backend i Python

  3. Forespørgsel på indlejrede objekter i Mongoid/rails 3 (lavere end, min-operatorer og sortering)

  4. Gruppér og tæl efter måned