sql >> Databáze >  >> NoSQL >> MongoDB

mongodb php - jak udělat dotaz podobný INNER JOIN

MongoDB nepodporuje připojení. Pokud chcete namapovat uživatele na novinky, můžete provést následující

1) Udělejte to na aplikační vrstvě. Získejte seznam uživatelů a získejte seznam novinek a zmapujte je ve své aplikaci. Tato metoda je velmi drahá, pokud ji potřebujete často.

2) Potřebujete-li předchozí krok provádět často, měli byste přepracovat své schéma tak, aby se zpravodajské články ukládaly jako vložené dokumenty spolu s uživatelskými dokumenty.

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

Jakmile máte data v tomto formátu, dotaz, který se pokoušíte spustit, je implicitní. Jedna věc, kterou je třeba poznamenat, je, že analytické dotazy jsou v takovém schématu obtížné. Chcete-li získat nejnovější přidané zpravodajské články a podobné dotazy, budete muset použít MapReduce.

Nakonec návrh schématu a to, kolik denormalizace vaše aplikace zvládne, závisí na tom, jaký druh dotazů očekáváte, že vaše aplikace poběží.

Tyto odkazy mohou být užitečné.http://www.mongodb.org/display/DOCS/Schema+Designhttp://www.blip.tv/file/3704083

Doufám, že to bylo užitečné.



  1. Vyhledávání v Mongu bez rozlišení velkých a malých písmen

  2. Java Client pro připojení ElasticCache Redis Cache Node

  3. Vytváření vícepolních indexů v Mongoose / MongoDB

  4. MongoDB C#:Nejlepší vzor serializace ID