sql >> Database >  >> NoSQL >> MongoDB

Bepaal efficiënt de eigenaar van een record in een hiërarchie met MongoDB

Als u records uit MongoDB probeert te "selecteren" op basis van een "kolom" met een waarde uit een reeks mogelijke waarden waarvoor u een join met een gebruikersbeheertabel nodig heeft om te bepalen, dan werkt NoSQL tegen u...

Als de lijst met gebruikers-ID's nog steeds beheersbaar is, kunt u een where ownerId in (?,?,?,?,?...) doen type zoekopdracht (na eerst de lijst te hebben bepaald):

db.documents.find({owner:{$in: [1234, 2345, 4444, 77777, 99999]}})

De NoSQL-manier is waarschijnlijk om dingen te denormaliseren, bijvoorbeeld door niet alleen de ownerId in het document op te nemen, maar het volledige pad omhoog in de managementhiërarchie:

{  _id: 'the document A',
   owner : 1234,
   managers: [ 2345, 4444, 77777, 99999 ]
}

Dat moet natuurlijk worden bijgewerkt wanneer de gebruikershiërarchie wordt verschoven.




  1. Hoe Mongo-gegevens te verkrijgen met behulp van geaggregeerde MongoDB-versie 3.0

  2. Mongo-query Distinct met Sum werkt niet

  3. Mongoose-zoekopdracht op datum

  4. Hoe een bestand downloaden dat is opgeslagen met GridFS en wordt geretourneerd met GraphQL in de React/Javascript-client?