sql >> Base de Datos >  >> NoSQL >> MongoDB

Determine eficientemente el propietario de un registro en una jerarquía con MongoDB

Si está tratando de "seleccionar" registros de MongoDB en función de una "columna" que tiene un valor de un conjunto de valores posibles que necesitaría una combinación con una tabla de administración de usuarios para determinar, entonces NoSQL está trabajando en su contra...

Si la lista de ID de usuario aún es manejable, puede hacer un where ownerId in (?,?,?,?,?...) tipo de consulta (después de haber determinado primero la lista):

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

La forma de NoSQL es probablemente desnormalizar las cosas, por ejemplo, al incluir no solo el ID de propietario en el documento, sino la ruta completa hacia arriba en la jerarquía de administración:

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

Por supuesto, eso deberá actualizarse cuando la jerarquía de usuarios cambie.