diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md index 1fd8f739e8c7d01855a3d1002284c19ca753305d..ebfcc81e3bbdec2586197beffe4b4cac15c42b95 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md @@ -587,7 +587,7 @@ try { ## SecurityLevel -用于指定创建的数据库的安全级别。 +用于设置数据库的安全级别 **系统能力:** 以下各项对应的系统能力均为 SystemCapability.DistributedDataManager.KVStore.Core。 @@ -708,14 +708,14 @@ try { ## KvStoreResultSet8+ ## -提供获取KVStore数据库结果集的方法,提供查询和移动数据读取位置的方法,在调用KvStoreResultSet的方法前,需要先通过KVStore构建一个KVStore实例。 +提供获取KVStore数据库结果集的方法;可以在结果集中查询和移动数据读取位置,在调用KvStoreResultSet的方法前,需要先通过KVStore构建一个KVStore实例。 ### getCount8+ ### getCount(): number -获取结果集中的行数。 +获取结果集中的总行数。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -723,7 +723,7 @@ getCount(): number | 类型 | 说明 | | ------ | -------------- | -| number |返回行数。 | +| number |返回数据的行数。 | **示例:** @@ -782,7 +782,7 @@ try { moveToFirst(): boolean -将读取位置移动到第一行。 +将读取位置移动到第一行。如果结果集为空,则返回false。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -816,7 +816,7 @@ try { moveToLast(): boolean -将读取位置移动到最后一行。 +将读取位置移动到最后一行。如果结果集为空,则返回false。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -850,7 +850,7 @@ try { moveToNext(): boolean -将读取位置移动到下一行。 +将读取位置移动到下一行。如果结果集为空,则返回false。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -884,7 +884,7 @@ try { moveToPrevious(): boolean -将读取位置移动到上一行。 +将读取位置移动到上一行。如果结果集为空,则返回false。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -958,7 +958,7 @@ try { moveToPosition(position: number): boolean -将读取位置从 0 移动到绝对位置。 +将读取位置移动到第number行。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -1133,7 +1133,7 @@ try { getEntry(): Entry -获取键值对。 +从当前位置获取对应的键值对。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -1177,43 +1177,46 @@ constructor() **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core +### equalTo8+ ### -### reset8+ ### - -reset(): Query +equalTo(field: string, value: number|string|boolean): Query -公共查询重置。 +构造一个Query对象来查询具有指定字段的条目,其值等于指定的值。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | +| value | number\|string\|boolean | 是 | 表示指定的值。| **返回值:** | 类型 | 说明 | | ------ | ------- | -| [Query](#query8) |返回重置的Query对象。| +| [Query](#query8) |返回Query对象。| **示例:** ```js try { let query = new distributedData.Query(); - query.equalTo("key", "value"); - console.log("query is " + query.getSqlLike()); - query.reset(); + query.equalTo("field", "value"); console.log("query is " + query.getSqlLike()); query = null; } catch (e) { - console.log("simply calls should be ok :" + e); + console.log("dumplicated calls should be ok :" + e); } ``` -### equalTo8+ ### +### notEqualTo8+ ### -equalTo(field: string, value: number|string|boolean): Query +notEqualTo(field: string, value: number|string|boolean): Query -构造一个Query对象来查询具有指定字段的条目,其值等于指定的值。 +构造一个Query对象以查询具有指定字段且值不等于指定值的条目。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -1221,21 +1224,21 @@ equalTo(field: string, value: number|string|boolean): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | value | number\|string\|boolean | 是 | 表示指定的值。| **返回值:** | 类型 | 说明 | | ------ | ------- | -| [Query](#query8) |返回重置的Query对象。| +| [Query](#query8) |返回Query对象。| **示例:** ```js try { let query = new distributedData.Query(); - query.equalTo("field", "value"); + query.notEqualTo("field", "value"); console.log("query is " + query.getSqlLike()); query = null; } catch (e) { @@ -1243,21 +1246,14 @@ try { } ``` +### reset8+ ### -### notEqualTo8+ ### - -notEqualTo(field: string, value: number|string|boolean): Query +reset(): Query -构造一个Query对象以查询具有指定字段且值不等于指定值的条目。 +返回重置的Query对象。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core -**参数:** - -| 参数名 | 参数类型 | 必填 | 说明 | -| ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | -| value | number\|string\|boolean | 是 | 表示指定的值。| **返回值:** @@ -1270,15 +1266,16 @@ notEqualTo(field: string, value: number|string|boolean): Query ```js try { let query = new distributedData.Query(); - query.notEqualTo("field", "value"); + query.equalTo("key", "value"); + console.log("query is " + query.getSqlLike()); + query.reset(); console.log("query is " + query.getSqlLike()); query = null; } catch (e) { - console.log("dumplicated calls should be ok :" + e); + console.log("simply calls should be ok :" + e); } ``` - ### greaterThan8+ ### greaterThan(field: string, value: number|string|boolean): Query @@ -1291,7 +1288,7 @@ greaterThan(field: string, value: number|string|boolean): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | value | number\|string\|boolean | 是 | 表示指定的值。| **返回值:** @@ -1326,7 +1323,7 @@ lessThan(field: string, value: number|string): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | value | number\|string\|boolean | 是 | 表示指定的值。| **返回值:** @@ -1361,7 +1358,7 @@ greaterThanOrEqualTo(field: string, value: number|string): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | value | number\|string\|boolean | 是 | 表示指定的值。| **返回值:** @@ -1396,7 +1393,7 @@ lessThanOrEqualTo(field: string, value: number|string): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | value | number\|string\|boolean | 是 | 表示指定的值。| **返回值:** @@ -1432,7 +1429,7 @@ isNull(field: string): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | **返回值:** @@ -1467,7 +1464,7 @@ inNumber(field: string, valueList: number[]): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | valueList | number[] | 是 | 表示指定的值列表。| **返回值:** @@ -1502,7 +1499,7 @@ inString(field: string, valueList: string[]): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | valueList | string[] | 是 | 表示指定的字符串值列表。| **返回值:** @@ -1537,7 +1534,7 @@ notInNumber(field: string, valueList: number[]): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | valueList | number[] | 是 | 表示指定的值列表。| **返回值:** @@ -1572,7 +1569,7 @@ notInString(field: string, valueList: string[]): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | valueList | string[] | 是 | 表示指定的字符串值列表。| **返回值:** @@ -1607,7 +1604,7 @@ like(field: string, value: string): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | value | string | 是 | 表示指定的字符串值。| **返回值:** @@ -1642,7 +1639,7 @@ unlike(field: string, value: string): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | | value | string | 是 | 表示指定的字符串值。| **返回值:** @@ -1737,7 +1734,7 @@ orderByAsc(field: string): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | **返回值:** @@ -1772,7 +1769,7 @@ orderByDesc(field: string): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段,且不能包含' ^ '。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | **返回值:** @@ -1835,7 +1832,7 @@ try { isNotNull(field: string): Query -使用不为空的指定字段创建查询条件。 +设置query对象的fieId字段不能为空。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -1843,7 +1840,7 @@ isNotNull(field: string): Query | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| fieId | string | 是 |表示指定字段。 | +| fieId | string | 是 |表示指定字段,不能包含' ^ '。 | **返回值:** @@ -2033,7 +2030,7 @@ try { getSqlLike():string -获取指定Query对象的查询语句。 +获取Query对象的查询语句。 **系统能力:** SystemCapability.DistributedDataManager.KVStore.Core @@ -2219,10 +2216,86 @@ try { } ``` +### delete9+ + +delete(predicates: Predicates, callback: AsyncCallback<void>): void + +从数据库中删除符合predicates条件的键值对,并通过callback方式返回,此方法为异步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| predicates | Predicates | 是 |指示筛选条件,当此参数为null时,应定义处理逻辑| +| callback | AsyncCallback<void> | 是 |回调函数。 | + +**示例:** + +```js +let kvStore; +try { + let predicates = new dataShare.DataSharePredicates(); + await kvStore.delete(predicates, function (err, data) { + if (err == undefined) { + console.log('delete success'); + } else { + console.log('delete fail' + err); + } + }); +} catch (e) { + console.log('An unexpected error occurred. Error:' + e); +} +``` + +### delete9+ + +delete(predicates: Predicates): Promise<void> + +从数据库中删除符合predicates条件的键值对,并通过Promise方式返回,此方法为异步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| predicates | Predicates | 是 |指示筛选条件,当此参数为null时,应定义处理逻辑。| + +**返回值:** + +| 类型 | 说明 | +| ------ | ------- | +| Promise<void> |Promise实例,用于异步处理。| + +**示例:** + +```js +let kvStore; +try { + let predicates = new dataShare.DataSharePredicates(); + let arr = ["name"]; + predicates.inKeys(arr); + kvStore.put("name", "bob").then((data) => { + console.log('put success' + JSON.stringify(data)); + await kvStore.delete(predicates).then((data) => { + console.log('delete success'); + }).catch((err) => { + console.log('delete fail' + JSON.stringify(err)); + }); + }) .catch((err) => { + console.log(' put fail' + err); + }); +}catch (e) { + console.log("An unexpected error occurred. Error:" + e); +} + +``` ### on('dataChange') -on(event: 'dataChange', type: SubscribeType, observer: Callback<ChangeNotification>): void +on(event: 'dataChange', type: SubscribeType, listener: Callback<ChangeNotification>): void 订阅指定类型的数据变更通知,此方法为同步方法。 @@ -2234,7 +2307,7 @@ on(event: 'dataChange', type: SubscribeType, observer: Callback<ChangeNotific | ----- | ------ | ---- | ----------------------- | | event |string | 是 |订阅的事件名,固定为'dataChange',表示数据变更事件。 | | type |[SubscribeType](#subscribetype) | 是 |表示订阅的类型。 | -| observer |Callback<[ChangeNotification](#changenotification)> | 是 |回调函数。 | +| listener |Callback<[ChangeNotification](#changenotification)> | 是 |回调函数。 | **示例:** @@ -2272,7 +2345,7 @@ kvStore.on('syncComplete', function (data) { ### off('dataChange')8+ -off(event:'dataChange', observer?: Callback<ChangeNotification>): void +off(event:'dataChange', listener?: Callback<ChangeNotification>): void 取消订阅数据变更通知,此方法为同步方法。 @@ -2283,7 +2356,7 @@ off(event:'dataChange', observer?: Callback<ChangeNotification>): void | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | | event |string | 是 |取消订阅的事件名,固定为'dataChange',表示数据变更事件。 | -| observer |Callback<[ChangeNotification](#changenotification)> |否 |回调函数。 | +| listener |Callback<[ChangeNotification](#changenotification)> |否 |回调函数。 | **示例:** @@ -2297,6 +2370,36 @@ kvStore.off('dataChange', function (data) { }); ``` +### off('syncComplete')9+ + +off(event: 'syncComplete', syncCallback?: Callback<Array<[string, number]>>): void + +取消订阅数据变更通知,此方法为同步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| event |string | 是 |取消订阅的事件名,固定为'syncComplete',表示同步完成事件。 | +| syncCallback |Callback<Array<[string, number]>> | 否 |用于向调用方发送同步结果的回调。 | + +**示例:** + +```js +let kvStore; +try { + const func = function (data) { + console.log('syncComplete ' + data) + }; + kvStore.on('syncComplete', func); + kvStore.off('syncComplete', func); +}catch(e) { + console.log('syncComplete e ' + e); +} +``` + ### putBatch8+ @@ -2340,7 +2443,7 @@ try { }); }); }catch(e) { - console.log('PutBatch e ' + e); + console.log('PutBatch e ' + JSON.stringify(e)); } ``` @@ -2395,10 +2498,83 @@ try { console.log('putBatch fail ' + JSON.stringify(err)); }); }catch(e) { - console.log('PutBatch e ' + e); + console.log('PutBatch e ' + JSON.stringify(e)); +} +``` + +### putBatch9+ + +putBatch(value: Array<ValuesBucket>, callback: AsyncCallback<void>): void + +将值写入KvStore数据库,并通过callback方式返回,此方法为异步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| value |Array[<ValuesBucket>]()[] | 是 |表示要插入的数据。 | +| callback |Asyncallback<void> |是 |回调函数。 | + +**示例:** + +```js +let kvStore; +try { + var arr = new Uint8Array([21,31]); + let entries = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": u8,}, + {"name": "roe12", "age": 21, "salary": 20.5, "blobType": u8,}, + {"name": "roe13", "age": 21, "salary": 20.5, "blobType": u8,}) + kvStore.putBatch(entries, async function (err,data) { + console.log('putBatch success'); + }).catch((err) => { + console.log('putBatch fail ' + JSON.stringify(err)); + }); +}catch(e) { + console.log('putBatch e ' + JSON.stringify(e)); } ``` +### putBatch9+ + +putBatch(value: Array<ValuesBucket>): Promise<void> + +将valuesbucket类型的值写入KvStore数据库,并通过Promise方式返回,此方法为异步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| value |Array<[ValuesBucket>](#)[] | 是 |表示要插入的数据。 | + +**返回值:** + +| 类型 | 说明 | +| ------ | ------- | +| Promise<void> |Promise实例,用于异步处理。| + +**示例:** + +```js +let kvStore; +try { + var arr = new Uint8Array([21,31]); + let entries = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": u8,}, + {"name": "roe12", "age": 21, "salary": 20.5, "blobType": u8,}, + {"name": "roe13", "age": 21, "salary": 20.5, "blobType": u8,}) + kvStore.putBatch(entries).then(async (err) => { + console.log('putBatch success'); + }).catch((err) => { + console.log('putBatch fail ' + JSON.stringify(err)); + }); +}catch(e) { + console.log('PutBatch e ' + JSON.stringify(e)); +} + +``` ### deleteBatch8+ @@ -3430,6 +3606,79 @@ try { } ``` +### getResultSet9+ ### + +getResultSet(predicates: Predicates, callback: AsyncCallback<KvStoreResultSet>): void + +获取与指定Predicate对象匹配的KvStoreResultSet对象,并通过callback方式返回,此方法为异步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| predicates | Predicates | 是 |指示筛选条件,当此参数为null时,应定义处理逻辑。 | +| callback |AsyncCallback<[KvStoreResultSet](#kvstoreresultsetsup8sup)> | 是 |回调函数,获取与指定Predicates对象匹配的KvStoreResultSet对象。 | + +**示例:** + +```js +let kvStore; +try { + let resultSet; + let predicates = new dataShare.DataSharePredicates(); + predicates.prefixKey("batch_test_string_key"); + await kvStore.getResultSet(predicates, async function (err, result) { + console.log(' GetResultSet success'); + resultSet = result; + await kvStore.closeResultSet(resultSet, function (err, data) { + console.log(' closeResultSet success'); + }) + }); +}catch(e) { + console.log('An unexpected error occurred. Error:' + e); +} +``` +### getResultSet9+ ### + +getResultSet(predicates: Predicates): Promise<KvStoreResultSet> + +获取与指定Predicate对象匹配的KvStoreResultSet对象,并通过Promise方式返回,此方法为异步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| predicates |[Predicates](#) | 是 |指示筛选条件,当此参数为null时,应定义处理逻辑 | + +**返回值:** + +| 类型 | 说明 | +| ------ | ------- | +|Promise<[KvStoreResultSet](#kvstoreresultset8)> |Promise实例,用于获取异步返回结果。| + +**示例:** + +```js +let kvStore; +try { + let resultSet; + let predicates = new dataShare.DataSharePredicates(); + predicates.prefixKey("batch_test_string_key"); + await kvStore.getResultSet(predicates) .then((result) => { + console.log(' GetResultSet success'); + resultSet = result; + await kvStore.closeResultSet(resultSet, fun ction (err, data) { + console.log(' closeResultSet success'); + }) + }); +}catch(e) { + console.log('An unexpected error occurred. Error:' + e); +} +``` ### closeResultSet8+ ### closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback<void>): void @@ -3692,7 +3941,6 @@ try { } ``` - ### on('syncComplete')8+ ### on(event: 'syncComplete', syncCallback: Callback<Array<[string, number]>>): void @@ -3759,10 +4007,61 @@ try { } ``` +### on('dataChange')9+ ### + +on(event: 'dataChange', type: SubscribeType, listener: Callback<ChangeNotification>): void + +订阅指定类型的数据变更通知,此方法为同步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| event |string | 是 |订阅的事件名,固定为'dataChange',表示数据变更事件。 | +| type |[SubscribeType](#subscribetype) | 是 |表示订阅的类型。 | +| listener |Callback<[ChangeNotification](#changenotification)> | 是 |回调函数。 | + +**示例:** + +```js +let kvStore; +kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) { + console.log("dataChange callback call data: " + JSON.stringify(data)); +}); + +``` + +### off('dataChange')9+ ### + +off(event:'dataChange', listener?: Callback<ChangeNotification>): void + +取消订阅数据变更通知,此方法为同步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| event |string | 是 |取消订阅的事件名,固定为'dataChange',表示数据变更事件。 | +| listener |Callback<[ChangeNotification](#changenotification)> |否 |回调函数。 | + +**示例:** -### sync +```js +let kvStore; +kvStore.on('dataChange', function (data) { + console.log("callback call data: " + data); +}); +kvStore.off('dataChange', function (data) { + console.log("callback call data: " + data); +}); +``` +### sync7+ -sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void +sync(deviceIds: string[], mode: SyncMode, delayMs?: number): void 在手动同步方式下,触发数据库同步,此方法为同步方法。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。 @@ -3774,9 +4073,9 @@ sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| deviceIdList |string[] | 是 |同一组网环境下,需要同步的设备的deviceId列表。 | +| deviceIds |string[] | 是 |同一组网环境下,需要同步的设备的deviceId列表。 | | mode |[SyncMode](#syncmode) | 是 |同步模式。 | -| allowedDelayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | +| delayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | **示例:** @@ -3785,6 +4084,47 @@ let kvStore; kvStore.sync('deviceIds', distributedData.SyncMode.PULL_ONLY, 1000); ``` +### sync9+ +sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void + +在手动同步方式下,触发数据库同步,此方法为同步方法。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。 + +**需要权限**: ohos.permission.DISTRIBUTED_DATASYNC。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| deviceIds |string[] | 是 |同一组网环境下,需要同步的设备的deviceId列表。 | +| query |[Query](#querysup8sup) | 是 |表示数据库的查询谓词条件 | +| delayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | + +**示例:** + +```js +let kvstore; +const KEY_TEST_SYNC_ELEMENT = 'key_test_sync'; +const VALUE_TEST_SYNC_ELEMENT = 'value-string-001'; +try { + kvStore.on('syncComplete', function (data) { + console.log('Sync dataChange'); + }); + kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err,data) { + console.log('Sync put success'); + const devices = ['deviceList']; + const mode = distributedData.SyncMode.PULL_ONLY; + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + query.deviceId('localDeviceId'); + kvStore.sync(devices, query, 1000); + }); +}catch(e) { + console.log('Sync e' + e); +} +``` + ### setSyncParam8+ ### setSyncParam(defaultAllowedDelayMs: number, callback: AsyncCallback<void>): void @@ -5011,7 +5351,7 @@ try { ### sync8+ ### -sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void +sync(deviceIds: string[], mode: SyncMode, delayMs?: number): void 在手动同步方式下,触发数据库同步,此方法为同步方法。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。 @@ -5023,9 +5363,9 @@ sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | -| deviceIdList |string[] | 是 |需要同步DeviceKvStore数据库的设备ID列表。 | +| deviceIds |string[] | 是 |需要同步DeviceKvStore数据库的设备ID列表。 | | mode |[SyncMode](#syncmode) | 是 |同步模式。 | -| allowedDelayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | +| delayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | **示例:** @@ -5048,6 +5388,48 @@ try { } ``` +### sync9+ ### + +sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void + +在手动同步方式下, 触发数据库同步,此方法为同步方法。关于分布式数据服务的同步方式说明,请见[分布式数据服务概述](../../database/database-mdds-overview.md)。 + +**需要权限**: ohos.permission.DISTRIBUTED_DATASYNC。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| deviceIds |string[] | 是 |需要同步DeviceKvStore数据库的设备ID列表。 | +| query |[Query](#querysup8sup) | 是 | 数据库的查询谓词条件 | +| delayMs |number | 否 |可选参数,允许延时时间,单位:ms(毫秒)。 | + +**示例:** + +```js +let kvstore; +const KEY_TEST_SYNC_ELEMENT = 'key_test_sync'; +const VALUE_TEST_SYNC_ELEMENT = 'value-string-001'; +try { + kvStore.on('syncComplete', function (data) { + console.log('Sync dataChange'); + }); + kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err,data) { + console.log('Sync put success'); + const devices = ['deviceList']; + const mode = distributedData.SyncMode.PULL_ONLY; + const query = new distributedData.Query(); + query.prefixKey("batch_test"); + query.deviceId('localDeviceId'); + kvStore.sync(devices, query, 1000); + }); +}catch(e) { + console.log('Sync e' + e); +} +``` + ### on('syncComplete')8+ ### on(event: 'syncComplete', syncCallback: Callback<Array<[string, number]>>): void @@ -5096,7 +5478,7 @@ off(event: 'syncComplete', syncCallback?: Callback<Array<[string, number]& | 参数名 | 参数类型 | 必填 | 说明 | | ----- | ------ | ---- | ----------------------- | | event |string | 是 |取消订阅的事件名,固定为'syncComplete',表示同步完成事件。 | -| syncCallback |Callback9+ ### + +on(event: 'dataChange', type: SubscribeType, listener: Callback<ChangeNotification>): void + +订阅指定类型的数据变更通知,此方法为同步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| event |string | 是 |订阅的事件名,固定为'dataChange',表示数据变更事件。 | +| type |[SubscribeType](#subscribetype) | 是 |表示订阅的类型。 | +| listener |Callback<[ChangeNotification](#changenotification)> | 是 |回调函数。 | + +**示例:** + +```js +let kvStore; +kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) { + console.log("dataChange callback call data: " + JSON.stringify(data)); +}); +``` + + +### off('dataChange')9+ ### + +off(event:'dataChange', listener?: Callback<ChangeNotification>): void + +取消订阅数据变更通知,此方法为同步方法。 + +**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core + +**参数:** + +| 参数名 | 参数类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----------------------- | +| event |string | 是 |取消订阅的事件名,固定为'dataChange',表示数据变更事件。 | +| listener |Callback<[ChangeNotification](#changenotification)> |否 |回调函数。 | + +**示例:** + +```js +let kvStore; +kvStore.on('dataChange', function (data) { + console.log("callback call data: " + data); +}); +kvStore.off('dataChange', function (data) { + console.log("callback call data: " + data); +}); +``` + ## SyncMode 同步模式枚举。