MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongodb php - comment faire une requête de type INNER JOIN

MongoDB ne prend pas en charge les jointures. Si vous souhaitez associer les utilisateurs aux actualités, vous pouvez procéder comme suit

1) Faites cela au niveau de la couche application. Obtenez la liste des utilisateurs, et obtenez la liste des actualités et cartographiez-les dans votre application. Cette méthode est très coûteuse si vous en avez souvent besoin.

2) Si vous devez souvent effectuer l'étape précédente, vous devez reconcevoir votre schéma afin que les articles de presse soient stockés sous forme de documents intégrés avec les documents utilisateur.

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

Une fois que vous avez vos données dans ce format, la requête que vous essayez d'exécuter est implicite. Une chose à noter, cependant, est que les requêtes analytiques deviennent difficiles sur un tel schéma. Vous devrez utiliser MapReduce pour obtenir les articles de presse les plus récemment ajoutés et de telles requêtes.

En fin de compte, la conception du schéma et le degré de dénormalisation que votre application peut gérer dépendent du type de requêtes que vous attendez de votre application.

Vous pouvez trouver ces liens utiles.http://www.mongodb.org/display/DOCS/Schema+Designhttp://www.blip.tv/file/3704083

J'espère que cela vous a été utile.