模型查询
REST, GraphQL, gRPC 统统的不要~ 我们的观点是基于数据模型,面向对象的方式才是最容易记忆
基础数据查询
- findAll
- find
- findOne
- findOneOrFail
- get
- count
查询所有已经完成的 todo
Todo.findAll({
where: {
combinator: 'and',
rules: [
{
field: 'completed',
operator: '=',
value: true
}
]
}
});
查询满足条件的前10条数据
Todo.find({
where: {
combinator: 'and',
rules: []
},
orderBy: [
{
field: 'completed',
sort: 'asc'
},
{
field: 'id',
sort: 'desc'
}
],
limit: 10,
offset: 0
});
Todo.findOne({
where: {
combinator: 'and',
rules: [
{
field: 'id',
operator: '=',
value: '591e97aa-f7e3-499c-9fa4-4e2ae4459ef6'
}
]
}
});
Todo.findOneOrFail({
where: {
combinator: 'and',
rules: [
{
field: 'id',
operator: '=',
value: '591e97aa-f7e3-499c-9fa4-4e2ae4459ef6'
}
]
}
});
Todo.get('123');
Todo.count({
where: {
combinator: 'and',
rules: [
{
field: 'completed',
operator: '=',
value: true
}
]
}
});
树结构数据查询
- findRoot
- findDescendants
- findAncestors
- countRoot
- countDescendants
- countAncestors
Menu.findRoot({ level: 0 });
Menu.findDescendants({
entity: menu_0,
level: 0
});
Menu.findAncestors({
entity: menu_0,
level: 0
});
Menu.countRoot({
entity: menu_0,
level: 0
});
Menu.countDescendants({
entity: menu_0,
level: 0
});
Menu.countAncestors({
entity: menu_0,
level: 0
});
图结构数据查询
📄️ find
查询多个实体,支持分页、排序和复杂查询条件。这是最常用的批量查询方法。
📄️ findAll
查询所有符合条件的实体,不进行分页限制。适用于小数据集或需要完整数据的场景。
📄️ findByCursor
基于游标的分页查询,适用于需要高效分页和无限滚动的场景。
📄️ findOne
查找符合条件的第一个实体,如果未找到则返回 undefined。
📄️ findOneOrFail
查找符合条件的单个“实体”(entity);若未找到则抛出“错误”。适用于“期望必定存在”的场景。
📄️ get
根据 ID 直接获取实体,这是最简单、最高效的查询方式。
📄️ count
统计满足条件的实体数量。常与分页查询一起使用。
📄️ 查询操作符
RxDB 使用统一的规则结构 RuleGroup 来描述查询条件。你可以通过嵌套的 and/or 组合实现复杂查询。