Estoy usando https://github.com/typicode/lowdb para un pequeño proyecto. Necesito una consulta que busque varios registros y devuelva cada registro que encuentre como una matriz.
Por ejemplo, para una base de datos como:
"records": [ { "id": "sadohfdsf", "username": "user1", "data": "abc" }, { "id": "tiyuykuy", "username": "user1", "data": "xyz" }, { "id": "tryehhrt", "username": "user2", "data": "tyu" } ] Me gustaría consultar todos los registros para el nombre de username: "user1" y obtener todos los registros de ese usuario en una matriz.
He intentado el valor predeterminado:
const user = await db.get('records') .find({ username: "user1" }) .value(); return user;pero solo encuentra el primer registro en la base de datos.
¿Cuál es la forma correcta de encontrar múltiples registros en lowdb?
NOTA : no uso LowDB
A juzgar por los documentos, creo que no es posible encontrar varios registros en LowDB. En su lugar, puede utilizar el método Array#filter .
// Assuming the following returns an array of your object const users = await db.get('records') .value(); // We can `filter` the user(s) const result = users.filter( user => user.username === 'user1' /* or any other username */ );Usa filtro en lugar de buscar.
const users = await db('records').filter({ username: "user1" });Ref: https://github.com/typicode/lowdb/issues/185 Unión izquierda con lowdb
Filtros múltiples significa usar cadena () también