sql >> Database >  >> NoSQL >> MongoDB

mongodb php - hoe een INNER JOIN-achtige query te doen

MongoDB ondersteunt geen joins. Als u gebruikers naar het nieuws wilt verwijzen, kunt u het volgende doen

1) Doe dit op de applicatielaag. Download de lijst met gebruikers en ontvang de lijst met nieuws en breng ze in kaart in uw toepassing. Deze methode is erg duur als je deze vaak nodig hebt.

2) Als u de vorige stap vaak moet uitvoeren, moet u uw schema opnieuw ontwerpen zodat de nieuwsartikelen worden opgeslagen als ingesloten documenten samen met de gebruikersdocumenten.

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

Zodra u uw gegevens in deze indeling hebt, is de query die u probeert uit te voeren impliciet. Een ding om op te merken is echter dat analytics-query's moeilijk worden op een dergelijk schema. U moet MapReduce gebruiken om de meest recent toegevoegde nieuwsartikelen en dergelijke vragen te krijgen.

Uiteindelijk hangt het schema-ontwerp en de mate van denormalisatie die uw toepassing aankan, af van het soort query's dat u verwacht dat uw toepassing zal uitvoeren.

Mogelijk vindt u deze links nuttig.http://www.mongodb.org/display/DOCS/Schema+Designhttp://www.blip.tv/file/3704083

Ik hoop dat het nuttig was.



  1. MongoDb - Gebruik van een multi-CPU-server voor een zware schrijftoepassing

  2. Het scrapy-redis-programma sluit niet automatisch

  3. Groepsresultaat met een tijdsinterval van 15 minuten in MongoDb

  4. Laravel Echo Server, Redis, Socket.IO:het lijkt erop dat ze niet werken