模型修改
模型修改是 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();
}
});