constructor (
storeType : DataStoreType = DataStoreType . MEMORY ,
enableInspector : boolean = false ,
name = 'ReactiveDB' ,
version = 1
)
构造函数
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的描述信息
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
该字段是否关联为其他表
Value
Index
ARRAY_BUFFER
0
BOOLEAN
1
DATE_TIME
2
INTEGER
3
NUMBER
4
OBJECT
5
STRING
6
LITERAL_ARRAY
7
Parameter
Type
Required
Description
name
String
required
关联表的名字
where
Function
required
关联数据的约束条件
example
database . dump ( ) : Observable < Object >
dump 整个数据库,用于下次 load。
database . load ( data : Object ) : Observable < void >
加载 dump 出来的数据,必须在 connect
方法调用前调用。
Database.prototype.connect
连接数据库,在 defineSchema
与 defineHook
完成之后调用,如果上述两个接口在 connect
之后依然被调用,则会抛出一个异常。
只有在 connect
之后才能调用下面的 API。
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 = 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, 清空所有数据.
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
操作的数据
fields
Type
Description
result
Boolean
执行是否成功
insert
number
执行insert
的数据条数
delete
number
执行delete
的数据条数
update
number
执行update
的数据条数
select
number
执行select
的数据条数