MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Determina in modo efficiente il proprietario di un record in una gerarchia con MongoDB

Se stai cercando di "selezionare" record da MongoDB in base a una "colonna" avente un valore da un insieme di possibili valori che avresti bisogno di un join rispetto a una tabella di gestione degli utenti per determinare, allora NoSQL sta lavorando contro di te...

Se l'elenco degli ID utente è ancora gestibile puoi eseguire un where ownerId in (?,?,?,?,?...) tipo di interrogazione (dopo aver prima determinato l'elenco):

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

Il modo in cui NoSQL è probabilmente quello di denormalizzare le cose, ad esempio includendo non solo l'ID proprietario nel documento, ma il percorso completo nella gerarchia di gestione:

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

Ovviamente, questo dovrà essere aggiornato quando la gerarchia degli utenti verrà spostata.