sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb php - hur man gör INNER JOIN-liknande fråga

MongoDB stöder inte anslutningar. Om du vill mappa användare till nyheterna kan du göra följande

1) Gör detta vid applikationsskiktet. Få listan över användare, och få listan över nyheter och kartlägg dem i din applikation. Denna metod är mycket dyr om du behöver detta ofta.

2) Om du behöver göra det föregående steget ofta bör du designa om ditt schema så att nyhetsartiklarna lagras som inbäddade dokument tillsammans med användardokumenten.

    {
      "_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 dina data i det här formatet är frågan du försöker köra implicit. En sak att notera är dock att analysfrågor blir svåra på ett sådant schema. Du måste använda MapReduce för att få de senast tillagda nyhetsartiklarna och sådana frågor.

I slutändan beror schemadesignen och hur mycket denormalisering din applikation kan hantera på vilken typ av frågor du förväntar dig att din applikation ska köra.

Dessa länkar kan vara användbara.http://www.mongodb.org/display/DOCS/Schema+Designhttp://www.blip.tv/file/3704083

Jag hoppas att det var till hjälp.



  1. Hur man får återuppringning när nyckeln går ut i REDIS

  2. Mongo hur man $lookup med DBRef

  3. Docker mongo bild 'Anslutning nekad' från annan container

  4. MurmurHash - vad är det?