Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

lowdb – how to query multiple records?

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.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

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 */
);
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading