Skip to content

Latest commit

 

History

History

API-description

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Database

Constructor

constructor(
  storeType: DataStoreType = DataStoreType.MEMORY,
  enableInspector: boolean = false,
  name = 'ReactiveDB',
  version = 1
)

构造函数

  • Enum: DataStoreType
Value Index
INDEXED_DB 0
MEMORY 1
LOCAL_STORAGE 2
WEB_SQL 3
OBSERVABLE_STORE 4

example:

// Database.ts
improt { Database, DataStoreType } from 'reactivedb'

export default new Database(DataStoreType.INDEXED_DB, true, 'Example', 1)

Database.prototype.defineSchema

Database.defineSchema(tableName: string, schemaDef: SchemaDef): Database

定义库中表的数据结构 / 形态

  • Method: Database.defineSchema(tableName: string, schemaDef: SchemaDef)
Parameter Type Required Description
tableName String required 数据表的名字
schemaDef SchemaDef required Schema Defination的描述信息
  • Interface: SchemaDef
Parameter Type Required Description
index String required 对象索引
  • Interface: SchemaMetadata
Parameter Type Required Description
type RDBType required 存储类型,只能为 RDBType 枚举值
primaryKey Boolean optional 该字段是否设为主键
index Boolean optional 该字段是否设为索引
unique Boolean optional 该字段是否唯一
virtual VirtualDef optional 该字段是否关联为其他表
  • Enum: RDBType
Value Index
ARRAY_BUFFER 0
BOOLEAN 1
DATE_TIME 2
INTEGER 3
NUMBER 4
OBJECT 5
STRING 6
LITERAL_ARRAY 7
  • Interface: VirtualDef
Parameter Type Required Description
name String required 关联表的名字
where Function required 关联数据的约束条件

example

Database.prototype.dump

  database.dump(): Observable<Object>

dump 整个数据库,用于下次 load。

Database.prototype.load

  database.load(data: Object): Observable<void>

加载 dump 出来的数据,必须在 connect 方法调用前调用。

Database.prototype.connect

  database.connect(): void

连接数据库,在 defineSchemadefineHook 完成之后调用,如果上述两个接口在 connect 之后依然被调用,则会抛出一个异常。 只有在 connect 之后才能调用下面的 API。

Database.prototype.get

  database.get<T>(tableName: string, clause: QueryDescription = {}): QueryToken<T>

对指定的表进行查询操作.

  • Method: database.get(tableName: string, clause: QueryDescription)
Parameter Type Required Description
tableName String required 指定要执行查询操作的数据表的名字
clause QueryDescription required 指定用于查询操作的描述信息
  • Interface: QueryDescription

继承自ClauseDescription接口

Parameter Type Required Description
fields FieldsValue[] optional 指定将要执行查询操作的时筛选的字段
where Function optional 指定用于查询操作时的匹配条件
  • type: FieldsValue
  type FieldsValue = string | { [index: string]: string[] }

example:

database.get('Task', {
  where: {
    dueDate: {
      $and: {
        $gt: moment().add(1, 'day').startOf('day').valueOf(),
        $lt: moment().add(6, 'day').endOf('day').valueOf()
      }
    },
    involveMembers: {
      $has: 'xxxxuserId'
    }
  }
})

Database.prototype.insert

  database.insert(tableName: string, data: T | T[]): Observable<T> | Observable<T[]>

对指定的数据表进行插入操作. 若table上存在insert hook, 则先执行hook再进行插入操作。

  • Method: database.insert(tableName: string, data: T | T[])
Parameter Type Required Description
tableName String required 指定将要执行插入操作的数据表的名字
data T | T[] required 存储的数据实体

Database.prototype.update

  database.update(tableName: string, clause: ClauseDescription, patch): void

对表中的指定的数据进行更新操作.

  • Method: database.update(tableName: string, clause: ClauseDescription, patch: any)
Parameter Type Required Description
tableName String required 指定将要执行更新操作的数据表的名字
clause ClauseDescription required 指定将要执行更新操作的实体匹配条件
patch Object required 更新的实体
  • Interface: ClauseDescription
Parameter Type Required Description
where Function optional 指定用于查询操作时的匹配条件

Database.prototype.delete

  database.delete(tableName: string, clause: ClauseDescription): void

对表中符合条件的数据进行删除操作. 若表中存在delete hook, 则先执行hook再进行删除.

  • Method: database.delete(tableName: string, clause: ClauseDescription)
Parameter Type Required Description
tableName String required 指定将要执行删除操作的数据表的名字
clause ClauseDescription required 指定用于执行删除操作的匹配条件

Database.prototype.dispose()

  database.dispose()

重置Database, 清空所有数据.

  • Method: database.dispose()
Parameter Type Required Description
No parameters

Database.prototype.upsert

upsert<T>(tableName: string, raw: T | T[]): Observable<ExecutorResult>

interface ExecutorResult {
  result: boolean
  insert: number
  delete: number
  update: number
  select: number
}
Parameter Type Required Description
tableName String required 指定将要执行upsert操作的数据表的名字
raw T | T[] required 执行upsert操作的数据
  • return ExecutorResult
fields Type Description
result Boolean 执行是否成功
insert number 执行insert的数据条数
delete number 执行delete的数据条数
update number 执行update的数据条数
select number 执行select的数据条数