sql >> Base de Datos >  >> NoSQL >> MongoDB

mongodb php - cómo hacer una consulta similar a INNER JOIN

MongoDB no admite uniones. Si desea asignar usuarios a las noticias, puede hacer lo siguiente

1) Haga esto en la capa de aplicación. Obtenga la lista de usuarios, y obtenga la lista de noticias y mapéelas en su aplicación. Este método es muy costoso si lo necesita con frecuencia.

2) Si necesita realizar el paso anterior con frecuencia, debe rediseñar su esquema para que los artículos de noticias se almacenen como documentos incrustados junto con los documentos del usuario.

    {
      "_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"
                }]
    }

Una vez que tenga sus datos en este formato, la consulta que está intentando ejecutar es implícita. Sin embargo, una cosa a tener en cuenta es que las consultas de análisis se vuelven difíciles en dicho esquema. Deberá usar MapReduce para obtener los artículos de noticias agregados más recientemente y consultas de este tipo.

Al final, el diseño del esquema y la cantidad de desnormalización que puede manejar su aplicación depende del tipo de consultas que espera que ejecute su aplicación.

Puede encontrar estos enlaces útiles.http://www.mongodb.org/display/DOCS/Schema+Designhttp://www.blip.tv/file/3704083

Espero que haya sido útil.