跳到主要内容

模型修改

模型修改是 RxDB 的核心功能之一,它允许你创建、更新和删除数据库中的数据。RxDB 提供了简洁的 API 来操作数据,并自动处理数据验证、事件触发和变更记录。

创建数据

实例化后保存

const todo = new Todo();
todo.title = '完成文档';
todo.completed = false;
await todo.save();

使用仓库创建

const todo = await rxdb.getRepository(Todo).create({
title: '完成文档',
completed: false
});

更新数据

修改实例后保存

todo.completed = true;
await todo.save();

使用仓库更新

// 完整更新
await rxdb.getRepository(Todo).update(todo.id, {
title: '更新的标题',
completed: true
});

// 部分更新
await rxdb.getRepository(Todo).patch(todo.id, {
completed: true
});

删除数据

调用实例方法

await todo.remove();

使用仓库删除

await rxdb.getRepository(Todo).remove(todo.id);

批量操作

// 批量创建
const todos = await rxdb.getRepository(Todo).createMany([
{ title: '任务1', completed: false },
{ title: '任务2', completed: false }
]);

// 批量更新
await rxdb.getRepository(Todo).updateMany(
{ completed: false },
{ completed: true }
);

// 批量删除
await rxdb.getRepository(Todo).removeMany({
completed: true
});

事务支持

RxDB 支持事务操作,确保数据一致性:

await rxdb.transaction(async () => {
// 在事务中执行多个操作
const todo = new Todo();
todo.title = '事务中的任务';
await todo.save();

// 如果事务中任何操作失败,所有更改都会回滚
const anotherTodo = await Todo.findOne({ where: { title: '已存在的任务' } });
if (anotherTodo) {
anotherTodo.completed = true;
await anotherTodo.save();
}
});