# ETSDB **Repository Path**: longkicode/etsdb ## Basic Information - **Project Name**: ETSDB - **Description**: ETSDB 是一个专为鸿蒙系统设计的轻量级、高性能本地数据库,灵感来源于 MongoDB Realm。它提供了面向对象的数据模型,支持实时数据同步,并针对鸿蒙系统的特性进行了优化。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-22 - **Last Updated**: 2025-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ETSDB - 鸿蒙系统上的移动数据库 ETSDB 是一个专为鸿蒙系统设计的轻量级、高性能本地数据库,灵感来源于 MongoDB Realm。它提供了面向对象的数据模型,支持实时数据同步,并针对鸿蒙系统的特性进行了优化。 ## 特性 - **面向对象的数据模型**:简单易学,不需要 ORM,让开发者编写更少的代码 - **高性能**:轻量级设计,高效使用内存和存储资源 - **事务支持**:完整的事务机制确保数据一致性 - **实时数据监听**:支持数据变更通知,轻松构建响应式应用 - **安全加密**:支持数据加密,保护敏感信息 - **鸿蒙系统优化**:针对鸿蒙系统特性进行了特别优化 ## 快速开始 ### 安装 将 ETSDB 添加到您的 HarmonyOS 项目中: ```javascript // 在你的 build.gradle 文件中添加依赖 implementation project(':etsdb') ``` ### 定义数据模型 ```javascript import etsdb from 'etsdb'; // 定义数据模型 etdb.defineModel('Person', { name: String, age: Number, hobbies: Array, address: { type: Object, default: {} } }); // 定义带主键的模型 etdb.defineModel('Dog', { _id: { type: String, primaryKey: true, default: () => etsdb.generateObjectId() }, name: String, owner: { type: 'Person', // 引用其他模型 ref: true } }); ``` ### 打开数据库 ```javascript // 打开默认数据库 const db = await etsdb.open(); // 或使用自定义配置打开数据库 const db = await etsdb.open({ name: 'myDatabase', encryptionKey: 'my-encryption-key', inMemory: false }); ``` ### CRUD 操作 ```javascript // 创建和保存对象 const person = db.create('Person', { name: '张三', age: 30, hobbies: ['读书', '跑步'] }); await db.save(person); // 查询对象 const people = await db.find('Person', { age: { $gte: 18 } }); // 更新对象 await db.update('Person', { name: '张三' }, { $set: { age: 31 } }); // 删除对象 await db.delete('Person', { name: '张三' }); ``` ### 监听数据变化 ```javascript // 监听集合变化 const subscription = db.watch('Person', (changes) => { console.log('Person集合发生变化:', changes); }); // 取消监听 subscription.unsubscribe(); ``` ## 文档 详细文档请查看 [docs](docs/) 目录。 ## 示例 查看 [examples](examples/) 目录中的示例代码,了解如何在实际项目中使用 ETSDB。 ## 许可证 本项目采用 Apache 2.0 许可证。