I’m using https://github.com/typicode/lowdb for a small project. I need a query which searches multiple records and returns each record it finds as an array.
For example, for a db such as:
"records": [
{
"id": "sadohfdsf",
"username": "user1",
"data": "abc"
},
{
"id": "tiyuykuy",
"username": "user1",
"data": "xyz"
},
{
"id": "tryehhrt",
"username": "user2",
"data": "tyu"
}
]
I’d like to query all the records for username: "user1" and get all the records for that user in an array.
I’ve tried the default:
const user = await db.get('records')
.find({ username: "user1" })
.value();
return user;
but it only finds the first record in the db.
What’s the correct way to find multiple records in lowdb?
>Solution :
NOTE: I don’t use LowDB
Judging by the docs, I think it’s not possible to find multiple records in LowDB. Instead, you can use the Array#filter method.
// 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 */
);