MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

mongodb php - como fazer uma consulta do tipo INNER JOIN


O MongoDB não suporta junções. Se você quiser mapear os usuários para as notícias, você pode fazer o seguinte

1) Faça isso na camada de aplicação. Obtenha a lista de usuários, obtenha a lista de notícias e mapeie-as em seu aplicativo. Este método é muito caro se você precisar dele com frequência.

2) Se você precisar fazer a etapa anterior com frequência, redesenhe seu esquema para que os artigos de notícias sejam armazenados como documentos incorporados junto com os documentos do usuário.
    {
      "_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"
                }]
    }

Depois de ter seus dados nesse formato, a consulta que você está tentando executar fica implícita. Uma coisa a notar, porém, é que as consultas de análise se tornam difíceis em tal esquema. Você precisará usar o MapReduce para obter os artigos de notícias adicionados mais recentemente e essas consultas.

No final, o design do esquema e quanta desnormalização seu aplicativo pode manipular depende de que tipo de consultas você espera que seu aplicativo execute.

Você pode achar esses links úteis.http://www.mongodb.org/display/DOCS/Schema+Designhttp://www.blip.tv/file/3704083

Espero que tenha sido útil.