¿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:[]}})