Estoy tratando de implementar la siguiente lógica SQL en el almacén de datos,
SELECT * from table where id in [1,2,3,4,5]Al implementar esto en el almacén de datos, quiero recuperar todas las entidades correspondientes con estos ID como una matriz.
let employees = [] try { for (let id of idArray) { const employee = await employeeRepo.getOneById(workspace, id) employees.push(employee) } } catch (e) { throw e; }Esta es la lógica ingenua de la función, y estoy tratando de reducirla a una sola consulta.
¿Está utilizando la biblioteca Node.js a la que se hace referencia aquí: https://cloud.google.com/datastore/docs/reference/libraries ?
Hay una función get donde puede pasar una matriz de claves y devolverá la matriz de entidades.
https://googleapis.dev/nodejs/datastore/latest/Datastore.html#get
Es posible hacerlo usando get como se menciona en la documentación .
Aquí hay un ejemplo de cómo hacerlo basado en su código:
const employee1 = this.datastore.key(['Employee', 1]); const employee2 = this.datastore.key(['Employee', 2]); const employee3 = this.datastore.key(['Employee', 3]); const keys = [employee1, employee2, employee3]; try { const [employees] = await datastore.get(keys); } catch (e) { throw e; }