¿Hay alguna forma de consultar dentro de esta estructura por las claves de objeto de los roles
?
interface UsersModel{ _id: string; email: string; roles: { [key: string]: RolesType[] }; }
Por ahora obtengo los datos en users
como:
roles: { $ne: null }
y entonces
const finalResult = users.filter(u => Object.keys(u.roles).includes('objectKeyIwant'));
¿Se puede hacer esto en el lado de mongodb y evitar obtener todos los datos y luego filtrarlos?
Ejemplos de datos: la colección de usuarios es así:
{ _id: '610baff85c071a2bd59dc84f', email: 'some@email.com', roles : { "shop1" : [ "shop_stock_manager" ], "shop2" : [ "shop_admin", "shop_stock_manager" ] } }
Y quiero obtener todos los usuarios que tienen algún rol en shop2
.
utilizar este
db.collection.find({"roles.shop2":{$ne:[]}})