# 分布式数据库操作描述 - [导入模块](#zh-cn_topic_0000001175986853_s56d19203690d4782bfc74069abb6bd71) - [权限](#zh-cn_topic_0000001175986853_section11257113618419) - [KVStore](#zh-cn_topic_0000001175986853_section12882825611) - [put\(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback\): void](#zh-cn_topic_0000001175986853_section1942221513) - [put\(key: string, value: Uint8Array | string | number | boolean\): Promise](#zh-cn_topic_0000001175986853_section43065440019) - [delete\(key: string, callback: AsyncCallback\): void](#zh-cn_topic_0000001175986853_section15564125555713) - [delete\(key: string\): Promise](#zh-cn_topic_0000001175986853_section1298265189) - [on\(event: 'dataChange', type: SubscribeType, observer: Callback\): void](#zh-cn_topic_0000001175986853_section9748071812) - [on\(event: 'syncComplete', syncCallback: Callback\>\): void](#zh-cn_topic_0000001175986853_section06419235582) >![](../../public_sys-resources/icon-note.gif) **说明:** >从 API Version 7 开始支持。 ## 导入模块 ``` import factory from '@ohos.data.distributeddata'; ``` ## 权限 无 ## KVStore 表示分布式数据库,并提供添加数据、删除数据和订阅数据变更的方法。 ### put\(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback\): void 添加指定类型键值对到数据库。 此方法是异步callback方法。 - 参数:

参数名

类型

说明

key

string

要添加数据的key。不能为空且长度不大于1KB。

value

Uint8Array | string | number | boolean

存储的新值。支持Uint8Array、number 、 string 、boolean。

Uint8Array的长度小于4M。

callback

AsyncCallback<void>

回调函数。

- 返回值: 无 - 示例 ``` kvStore.put('key-001', 'value-001', function(err, value){ }); ``` ### put\(key: string, value: Uint8Array | string | number | boolean\): Promise 添加指定类型键值对到数据库。 此方法是异步promise方法。 - 参数:

参数名

类型

说明

key

string

要添加数据的key。不能为空且长度不大于1KB。

value

Uint8Array | string | number | boolean

要添加的数据。支持Uint8Array、number 、 string 、boolean。

Uint8Array和string类型的value长度必须小于4MB。

- 返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

- 示例 ``` const promise = kvStore.put('key-001', 'value-001'); promise.then((data) => { }).catch((err) => { }); ``` ### delete\(key: string, callback: AsyncCallback\): void 从数据库中删除指定键值的数据。 此方法是异步callback方法。 - 参数:

参数名

类型

说明

key

string

要删除数据的key。不能为空且长度不大于1KB。

callback

AsyncCallback<void>

回调函数。

- 返回值: 无 - 示例 ``` kvStore.delete('key-001', function(err, value){ }); ``` ### delete\(key: string\): Promise 从数据库中删除指定键值的数据。 此方法是异步promise方法。 - 参数:

参数名

类型

说明

key

string

要删除数据的key。不能为空且长度不大于1KB。

- 返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

- 示例 ``` const promise = kvStore.delete('key-001'); promise.then((data) => { }).catch((err) => { }); ``` ### on\(event: 'dataChange', type: SubscribeType, observer: Callback\): void 订阅指定类型的数据更改通知。 此方法是同步方法。 - 参数:

参数名

类型

说明

event

'dataChange'

回调函数名称。

type

SubscribeType

表示订阅的类型。具体参考SubscribeType。

observer

Callback<ChangeNotification>

回调函数。

- 返回值: 无 - 示例 ``` kvStore.on('dataChange', 0, function(notification){ }); ``` ### on\(event: 'syncComplete', syncCallback: Callback\>\): void 订阅指定类型的数据更改通知。 此方法是同步方法。 - 参数:

参数名

类型

说明

event

'syncComplete'

回调函数名称。

syncCallback

Callback<Array<[string, number]>>

回调函数。

- 返回值: 无 - 示例 ``` kvStore.on('syncComplete', function(data){ }); ```