lowdb - 如何查询多条记录?
lowdb - how to query multiple records?
我正在使用 https://github.com/typicode/lowdb 进行一个小项目。我需要一个搜索多条记录的查询,returns 它找到的每条记录都是一个数组。
例如,对于这样的数据库:
"records": [
{
"id": "sadohfdsf",
"username": "user1",
"data": "abc"
},
{
"id": "tiyuykuy",
"username": "user1",
"data": "xyz"
},
{
"id": "tryehhrt",
"username": "user2",
"data": "tyu"
}
]
我想查询 username: "user1"
的所有记录,并在数组中获取该用户的所有记录。
我试过默认值:
const user = await db.get('records')
.find({ username: "user1" })
.value();
return user;
但它只能找到数据库中的第一条记录。
在lowdb中查找多条记录的正确方法是什么?
NOTE: I don't use LowDB
根据文档判断,我认为在 LowDB 中不可能找到多条记录。相反,您可以使用 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 */
);
使用过滤器而不是查找。
const users = await db('records').filter({ username: "user1" });
参考:https://github.com/typicode/lowdb/issues/185
多个过滤器意味着也使用 chain()
我正在使用 https://github.com/typicode/lowdb 进行一个小项目。我需要一个搜索多条记录的查询,returns 它找到的每条记录都是一个数组。
例如,对于这样的数据库:
"records": [
{
"id": "sadohfdsf",
"username": "user1",
"data": "abc"
},
{
"id": "tiyuykuy",
"username": "user1",
"data": "xyz"
},
{
"id": "tryehhrt",
"username": "user2",
"data": "tyu"
}
]
我想查询 username: "user1"
的所有记录,并在数组中获取该用户的所有记录。
我试过默认值:
const user = await db.get('records')
.find({ username: "user1" })
.value();
return user;
但它只能找到数据库中的第一条记录。
在lowdb中查找多条记录的正确方法是什么?
NOTE: I don't use LowDB
根据文档判断,我认为在 LowDB 中不可能找到多条记录。相反,您可以使用 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 */
);
使用过滤器而不是查找。
const users = await db('records').filter({ username: "user1" });
参考:https://github.com/typicode/lowdb/issues/185
多个过滤器意味着也使用 chain()