分布式數據管理
分布式數據管理為應用程序提供不同設備間數據庫的分布式協同能力。通過調用分布式數據各個接口,應用程序可將數據保存到分布式數據庫中,并可對分布式數據庫中的數據進行增加、刪除、修改、查詢、同步等操作。
該模塊提供以下分布式數據管理相關的常用功能:
- [KVManager]:數據管理實例,用于獲取KVStore的相關信息。
- [KvStoreResultSet8+]:提供獲取KVStore數據庫結果集的相關方法,包括查詢和移動數據讀取位置等。
- [Query8+]:使用謂詞表示數據庫查詢,提供創建Query實例、查詢數據庫中的數據和添加謂詞的方法。
- [KVStore]:KVStore數據庫實例,提供增加數據、刪除數據和訂閱數據變更、訂閱數據同步完成的方法。
- [SingleKVStore]:單版本分布式數據庫,繼承自[KVStore],不對數據所屬設備進行區分,提供查詢數據和同步數據的方法。
- [DeviceKVStore8+]:設備協同數據庫,繼承自[KVStore],以設備維度對數據進行區分,提供查詢數據和同步數據的方法。
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
本模塊首批接口從API version 7開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
導入模塊
import distributedData from '@ohos.data.distributedData';
distributedData.createKVManager
createKVManager(config: KVManagerConfig, callback: AsyncCallback): void
創建一個KVManager對象實例,用于管理數據庫對象,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
config | [KVManagerConfig] | 是 | 提供KVManager實例的配置信息,包括調用方的包名和用戶信息。 |
callback | AsyncCallback<[KVManager]> | 是 | 回調函數。返回創建的KVManager對象實例。 |
示例:
let kvManager;
try {
const kvManagerConfig = {
bundleName : 'com.example.datamanagertest',
userInfo : {
userId : '0',
userType : distributedData.UserType.SAME_USER_ID
}
}
distributedData.createKVManager(kvManagerConfig, function (err, manager) {
if (err) {
console.log("createKVManager err: " + JSON.stringify(err));
return;
}
console.log("createKVManager success");
kvManager = manager;
});
} catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
distributedData.createKVManager
createKVManager(config: KVManagerConfig): Promise
創建一個KVManager對象實例,用于管理數據庫對象,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
config | [KVManagerConfig] | 是 | 提供KVManager實例的配置信息,包括調用方的包名和用戶信息。 |
返回值:
類型 | 說明 |
---|---|
Promise<[KVManager]> | Promise對象。返回創建的KVManager對象實例。 |
示例:
let kvManager;
try {
const kvManagerConfig = {
bundleName : 'com.example.datamanagertest',
userInfo : {
userId : '0',
userType : distributedData.UserType.SAME_USER_ID
}
}
distributedData.createKVManager(kvManagerConfig).then((manager) = > {
console.log("createKVManager success");
kvManager = manager;
}).catch((err) = > {
console.log("createKVManager err: " + JSON.stringify(err));
});
} catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
KVManagerConfig
提供KVManager實例的配置信息,包括調用方的包名和用戶信息。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
userInfo | [UserInfo] | 是 | 調用方的用戶信息。 |
bundleName | string | 是 | 調用方的包名。 |
UserInfo
用戶信息。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 參數類型 | 必填 | 說明 |
---|---|---|---|
userId | string | 是 | 指示要設置的用戶ID。 |
userType | [UserType] | 是 | 指示要設置的用戶類型。 |
UserType
用戶類型枚舉。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 值 | 說明 |
---|---|---|
SAME_USER_ID | 0 | 使用同一帳戶登錄不同設備的用戶。 |
KVManager
數據管理實例,用于獲取KVStore的相關信息。在調用KVManager的方法前,需要先通過[createKVManager]構建一個KVManager實例。
getKVStore
getKVStore(storeId: string, options: Options, callback: AsyncCallback): void
通過指定Options和storeId,創建并獲取KVStore數據庫,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
storeId | string | 是 | 數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。 |
options | [Options] | 是 | 創建KVStore實例的配置信息。 |
callback | AsyncCallback, | 是 | 回調函數。返回創建的KVStore數據庫實例。 |
示例:
let kvStore;
let kvManager;
try {
const options = {
createIfMissing : true,
encrypt : false,
backup : false,
autoSync : true,
kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
securityLevel : distributedData.SecurityLevel.S2,
};
kvManager.getKVStore('storeId', options, function (err, store) {
if (err) {
console.log("getKVStore err: " + JSON.stringify(err));
return;
}
console.log("getKVStore success");
kvStore = store;
});
} catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
getKVStore
getKVStore(storeId: string, options: Options): Promise
通過指定Options和storeId,創建并獲取KVStore數據庫,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
storeId | string | 是 | 數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。 |
options | [Options] | 是 | 創建KVStore實例的配置信息。 |
返回值:
類型 | 說明 |
---|---|
Promise , | Promise對象。返回創建的KVStore數據庫實例。 |
示例:
let kvStore;
let kvManager;
try {
const options = {
createIfMissing : true,
encrypt : false,
backup : false,
autoSync : true,
kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
securityLevel : distributedData.SecurityLevel.S2,
};
kvManager.getKVStore('storeId', options).then((store) = > {
console.log("getKVStore success");
kvStore = store;
}).catch((err) = > {
console.log("getKVStore err: " + JSON.stringify(err));
});
} catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
closeKVStore8+
closeKVStore(appId: string, storeId: string, kvStore: KVStore, callback: AsyncCallback): void
通過storeId的值關閉指定的KVStore數據庫,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數據庫方的包名。 |
storeId | string | 是 | 要關閉的數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。 |
kvStore | [KVStore] | 是 | 要關閉的KVStore數據庫。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
let kvManager;
const options = {
createIfMissing : true,
encrypt : false,
backup : false,
autoSync : true,
kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
schema : '',
securityLevel : distributedData.SecurityLevel.S2,
}
try {
kvManager.getKVStore('storeId', options, async function (err, store) {
console.log('getKVStore success');
kvStore = store;
kvManager.closeKVStore('appId', 'storeId', kvStore, function (err, data) {
console.log('closeKVStore success');
});
});
} catch (e) {
console.log('closeKVStore e ' + e);
}
closeKVStore8+
closeKVStore(appId: string, storeId: string, kvStore: KVStore): Promise
通過storeId的值關閉指定的KVStore數據庫,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數據庫方的包名。 |
storeId | string | 是 | 要關閉的數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。 |
kvStore | [KVStore] | 是 | 要關閉的KVStore數據庫。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvManager;
let kvStore;
const options = {
createIfMissing : true,
encrypt : false,
backup : false,
autoSync : true,
kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
schema : '',
securityLevel : distributedData.SecurityLevel.S2,
}
try {
kvManager.getKVStore('storeId', options).then(async (store) = > {
console.log('getKVStore success');
kvStore = store;
kvManager.closeKVStore('appId', 'storeId', kvStore).then(() = > {
console.log('closeKVStore success');
}).catch((err) = > {
console.log('closeKVStore err ' + JSON.stringify(err));
});
}).catch((err) = > {
console.log('CloseKVStore getKVStore err ' + JSON.stringify(err));
});
} catch (e) {
console.log('closeKVStore e ' + e);
}
deleteKVStore8+
deleteKVStore(appId: string, storeId: string, callback: AsyncCallback): void
通過storeId的值刪除指定的KVStore數據庫,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數據庫方的包名。 |
storeId | string | 是 | 要刪除的數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvManager;
let kvStore;
const options = {
createIfMissing : true,
encrypt : false,
backup : false,
autoSync : true,
kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
schema : '',
securityLevel : distributedData.SecurityLevel.S2,
}
try {
kvManager.getKVStore('store', options, async function (err, store) {
console.log('getKVStore success');
kvStore = store;
kvManager.deleteKVStore('appId', 'storeId', function (err, data) {
console.log('deleteKVStore success');
});
});
} catch (e) {
console.log('DeleteKVStore e ' + e);
}
deleteKVStore8+
deleteKVStore(appId: string, storeId: string): Promise
通過storeId的值刪除指定的KVStore數據庫,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數據庫方的包名。 |
storeId | string | 是 | 要刪除的數據庫唯一標識符,長度不大于[MAX_STORE_ID_LENGTH]。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvManager;
let kvStore;
const options = {
createIfMissing : true,
encrypt : false,
backup : false,
autoSync : true,
kvStoreType : distributedData.KVStoreType.SINGLE_VERSION,
schema : '',
securityLevel : distributedData.SecurityLevel.S2,
}
try {
kvManager.getKVStore('storeId', options).then(async (store) = > {
console.log('getKVStore success');
kvStore = store;
kvManager.deleteKVStore('appId', 'storeId').then(() = > {
console.log('deleteKVStore success');
}).catch((err) = > {
console.log('deleteKVStore err ' + JSON.stringify(err));
});
}).catch((err) = > {
console.log('getKVStore err ' + JSON.stringify(err));
});
} catch (e) {
console.log('deleteKVStore e ' + e);
}
getAllKVStoreId8+
getAllKVStoreId(appId: string, callback: AsyncCallback): void
獲取所有通過[getKVStore]方法創建的且沒有調用[deleteKVStore]方法刪除的KVStore數據庫的storeId,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數據庫方的包名。 |
callback | AsyncCallback | 是 | 回調函數。返回所有創建的KvStore數據庫的storeId。 |
示例:
let kvManager;
try {
kvManager.getAllKVStoreId('appId', function (err, data) {
console.log('GetAllKVStoreId success');
console.log('GetAllKVStoreId size = ' + data.length);
});
} catch (e) {
console.log('GetAllKVStoreId e ' + e);
}
getAllKVStoreId8+
getAllKVStoreId(appId: string): Promise
獲取所有通過[getKVStore]方法創建的且沒有調用[deleteKVStore]方法刪除的KVStore數據庫的storeId,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數據庫方的包名。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise對象。返回所有創建的KvStore數據庫的storeId。 |
示例:
let kvManager;
try {
console.log('GetAllKVStoreId');
kvManager.getAllKVStoreId('appId').then((data) = > {
console.log('getAllKVStoreId success');
console.log('size = ' + data.length);
}).catch((err) = > {
console.log('getAllKVStoreId err ' + JSON.stringify(err));
});
} catch(e) {
console.log('getAllKVStoreId e ' + e);
}
on('distributedDataServiceDie')8+
on(event: 'distributedDataServiceDie', deathCallback: Callback): void
訂閱服務狀態變更通知。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'distributedDataServiceDie',即服務狀態變更事件。 |
deathCallback | Callback | 是 | 回調函數。 |
示例:
let kvManager;
try {
console.log('KVManagerOn');
const deathCallback = function () {
console.log('death callback call');
}
kvManager.on('distributedDataServiceDie', deathCallback);
} catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
off('distributedDataServiceDie')8+
off(event: 'distributedDataServiceDie', deathCallback?: Callback): void
取消訂閱服務狀態變更通知。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 取消訂閱的事件名,固定為'distributedDataServiceDie',即服務狀態變更事件。 |
deathCallback | Callback | 否 | 回調函數。 |
示例:
let kvManager;
try {
console.log('KVManagerOff');
const deathCallback = function () {
console.log('death callback call');
}
kvManager.off('distributedDataServiceDie', deathCallback);
} catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
Options
用于提供創建數據庫的配置信息。
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
createIfMissing | boolean | 否 | 當數據庫文件不存在時是否創建數據庫,默認創建。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core |
encrypt | boolean | 否 | 設置數據庫文件是否加密,默認不加密。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core |
backup | boolean | 否 | 設置數據庫文件是否備份,默認備份。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core |
autoSync | boolean | 否 | 設置數據庫文件是否自動同步,默認不自動同步。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core 需要權限 : ohos.permission.DISTRIBUTED_DATASYNC |
kvStoreType | [KVStoreType] | 否 | 設置要創建的數據庫類型,默認為多設備協同數據庫。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core |
securityLevel | [SecurityLevel] | 否 | 設置數據庫安全級別,默認不設置安全級別。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core |
schema8+ | [Schema] | 否 | 設置定義存儲在數據庫中的值。**系統能力:**SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
KVStoreType
KVStore數據庫類型枚舉。
名稱 | 值 | 說明 |
---|---|---|
DEVICE_COLLABORATION | 0 | 表示多設備協同數據庫。**系統能力:**SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
SINGLE_VERSION | 1 | 表示單版本數據庫。**系統能力:**SystemCapability.DistributedDataManager.KVStore.Core |
MULTI_VERSION | 2 | 表示多版本數據庫。此類型當前不允許使用。**系統能力:**SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
SecurityLevel
數據庫的安全級別枚舉。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 值 | 說明 |
---|---|---|
NO_LEVEL | 0 | 表示數據庫不設置安全級別。 |
S0 | 1 | 表示數據庫的安全級別為公共級別。 |
S1 | 2 | 表示數據庫的安全級別為低級別,當數據泄露時會產生較低影響。例如,包含壁紙等系統數據的數據庫。 |
S2 | 3 | 表示數據庫的安全級別為中級別,當數據泄露時會產生較大影響。例如,包含錄音、視頻等用戶生成數據或通話記錄等信息的數據庫。 |
S3 | 5 | 表示數據庫的安全級別為高級別,當數據泄露時會產生重大影響。例如,包含用戶運動、健康、位置等信息的數據庫。 |
S4 | 6 | 表示數據庫的安全級別為關鍵級別,當數據泄露時會產生嚴重影響。例如,包含認證憑據、財務數據等信息的數據庫。 |
Constants
KVStore常量。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 值 | 說明 |
---|---|---|
MAX_KEY_LENGTH | 1024 | 數據庫中Key允許的最大長度,單位字節。 |
MAX_VALUE_LENGTH | 4194303 | 數據庫中Value允許的最大長度,單位字節。 |
MAX_KEY_LENGTH_DEVICE | 896 | 最大設備密鑰長度,單位字節。 |
MAX_STORE_ID_LENGTH | 128 | 數據庫標識符允許的最大長度,單位字節。 |
MAX_QUERY_LENGTH | 512000 | 最大查詢長度,單位字節。 |
MAX_BATCH_SIZE | 128 | 最大批處理操作數量。 |
Schema8+
表示數據庫模式,可以在創建或打開數據庫時創建Schema對象并將它們放入[Options]中。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。
名稱 | 類型 | 說明 |
---|---|---|
root8+ | [FieldNode] | 表示json根對象。 |
indexes8+ | Array | 表示json類型的字符串數組。 |
mode8+ | number | 表示Schema的模式。 |
skip8+ | number | Schema的跳躍大小。 |
constructor8+
constructor()
用于創建Schema實例的構造函數。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。
FieldNode8+
表示 Schema 實例的節點,提供定義存儲在數據庫中的值的方法。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。
名稱 | 類型 | 說明 |
---|---|---|
nullable8+ | boolean | 表示數據庫字段是否可以為空。 |
default8+ | string | 表示Fieldnode的默認值。 |
type8+ | number | 表示指定節點對應數據類型的值。 |
constructor8+
constructor(name: string)
用于創建帶有string字段FieldNode實例的構造函數。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
name | string | 是 | FieldNode的值。 |
appendChild8+
appendChild(child: FieldNode): boolean
在當前 FieldNode 中添加一個子節點。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore。
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
child | [FieldNode] | 是 | 要附加的域節點。 |
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示子節點成功添加到FieldNode;返回false則表示操作失敗。 |
示例:
import ddm from '@ohos.data.distributedData';
try {
let node = new ddm.FieldNode("root");
let child1 = new ddm.FieldNode("child1");
let child2 = new ddm.FieldNode("child2");
let child3 = new ddm.FieldNode("child3");
node.appendChild(child1);
node.appendChild(child2);
node.appendChild(child3);
console.log("appendNode " + JSON.stringify(node));
child1 = null;
child2 = null;
child3 = null;
node = null;
} catch (e) {
console.log("AppendChild " + e);
}
KvStoreResultSet8+
提供獲取KVStore數據庫結果集的相關方法,包括查詢和移動數據讀取位置等。
在調用KvStoreResultSet的方法前,需要先通過[getKVStore])構建一個KVStore實例。
getCount8+
getCount(): number
獲取結果集中的總行數。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
number | 返回數據的總行數。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const count = resultSet.getCount();
console.log("getCount succeed:" + count);
} catch (e) {
console.log("getCount failed: " + e);
}
getPosition8+
getPosition(): number
獲取結果集中當前的讀取位置。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
number | 返回當前讀取位置。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeeded.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const position = resultSet.getPosition();
console.log("getPosition succeed:" + position);
} catch (e) {
console.log("getPosition failed: " + e);
}
moveToFirst8+
moveToFirst(): boolean
將讀取位置移動到第一行。如果結果集為空,則返回false。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const moved1 = resultSet.moveToFirst();
console.log("moveToFirst succeed: " + moved1);
} catch (e) {
console.log("moveToFirst failed " + e);
}
moveToLast8+
moveToLast(): boolean
將讀取位置移動到最后一行。如果結果集為空,則返回false。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const moved2 = resultSet.moveToLast();
console.log("moveToLast succeed:" + moved2);
} catch (e) {
console.log("moveToLast failed: " + e);
}
moveToNext8+
moveToNext(): boolean
將讀取位置移動到下一行。如果結果集為空,則返回false。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const moved3 = resultSet.moveToNext();
console.log("moveToNext succeed: " + moved3);
} catch (e) {
console.log("moveToNext failed: " + e);
}
moveToPrevious8+
moveToPrevious(): boolean
將讀取位置移動到上一行。如果結果集為空,則返回false。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const moved4 = resultSet.moveToPrevious();
console.log("moveToPrevious succeed:" + moved4);
} catch (e) {
console.log("moveToPrevious failed: " + e);
}
move8+
move(offset: number): boolean
將讀取位置移動到當前位置的相對偏移量。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
offset | number | 是 | 表示與當前位置的相對偏移量,負偏移表示向后移動,正偏移表示向前移動。 |
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const moved5 = resultSet.move();
console.log("move succeed:" + moved5);
} catch (e) {
console.log("move failed: " + e);
}
moveToPosition8+
moveToPosition(position: number): boolean
將讀取位置從 0 移動到絕對位置。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
position | number | 是 | 表示絕對位置。 |
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const moved6 = resultSet.moveToPosition();
console.log("moveToPosition succeed: " + moved6);
} catch (e) {
console.log("moveToPosition failed: " + e);
}
isFirst8+
isFirst(): boolean
檢查讀取位置是否為第一行。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示讀取位置為第一行;返回false表示讀取位置不是第一行。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const isfirst = resultSet.isFirst();
console.log("Check isFirst succeed:" + isfirst);
} catch (e) {
console.log("Check isFirst failed: " + e);
}
isLast8+
isLast(): boolean
檢查讀取位置是否為最后一行。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示讀取位置為最后一行;返回false表示讀取位置不是最后一行。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const islast = resultSet.isLast();
console.log("Check isLast succeed: " + islast);
} catch (e) {
console.log("Check isLast failed: " + e);
}
isBeforeFirst8+
isBeforeFirst(): boolean
檢查讀取位置是否在第一行之前。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示讀取位置在第一行之前;返回false表示讀取位置不在第一行之前。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const isbeforefirst = resultSet.isBeforeFirst();
console.log("Check isBeforeFirst succeed: " + isbeforefirst);
} catch (e) {
console.log("Check isBeforeFirst failed: " + e);
}
isAfterLast8+
isAfterLast(): boolean
檢查讀取位置是否在最后一行之后。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示讀取位置在最后一行之后;返回false表示讀取位置不在最后一行之后。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const isafterlast = resultSet.isAfterLast();
console.log("Check isAfterLast succeed:" + isafterlast);
} catch (e) {
console.log("Check isAfterLast failed: " + e);
}
getEntry8+
getEntry(): Entry
從當前位置獲取對應的鍵值對。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
[Entry] | 返回鍵值對。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + err);
});
const entry = resultSet.getEntry();
console.log("getEntry succeed:" + JSON.stringify(entry));
} catch (e) {
console.log("getEntry failed: " + e);
}
Query8+
使用謂詞表示數據庫查詢,提供創建Query實例、查詢數據庫中的數據和添加謂詞的方法。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
constructor8+
constructor()
用于創建Schema實例的構造函數。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
reset8+
reset(): Query
重置Query對象。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
[Query] | 返回重置的Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.equalTo("key", "value");
console.log("query is " + query.getSqlLike());
query.reset();
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("simply calls should be ok :" + e);
}
equalTo8+
equalTo(field: string, value: number|string|boolean): Query
構造一個Query對象來查詢具有指定字段的條目,其值等于指定的值。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number | string | boolean |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.equalTo("field", "value");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
notEqualTo8+
notEqualTo(field: string, value: number|string|boolean): Query
構造一個Query對象以查詢具有指定字段且值不等于指定值的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number | string | boolean |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.notEqualTo("field", "value");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
greaterThan8+
greaterThan(field: string, value: number|string|boolean): Query
構造一個Query對象以查詢具有大于指定值的指定字段的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number | string | boolean |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.greaterThan("field", "value");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
lessThan8+
lessThan(field: string, value: number|string): Query
構造一個Query對象以查詢具有小于指定值的指定字段的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number | string | boolean |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.lessThan("field", "value");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
greaterThanOrEqualTo8+
greaterThanOrEqualTo(field: string, value: number|string): Query
構造一個Query對象以查詢具有指定字段且值大于或等于指定值的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number | string | boolean |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.greaterThanOrEqualTo("field", "value");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#lessthanorequalto8)lessThanOrEqualTo8+
lessThanOrEqualTo(field: string, value: number|string): Query
構造一個Query對象以查詢具有指定字段且值小于或等于指定值的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number | string | boolean |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.lessThanOrEqualTo("field", "value");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
isNull8+
isNull(field: string): Query
構造一個Query對象以查詢具有值為null的指定字段的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.isNull("field");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
inNumber8+
inNumber(field: string, valueList: number[]): Query
構造一個Query對象以查詢具有指定字段的條目,其值在指定的值列表中。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | number[] | 是 | 表示指定的值列表。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.inNumber("field", [0, 1]);
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
inString8+
inString(field: string, valueList: string[]): Query
構造一個Query對象以查詢具有指定字段的條目,其值在指定的字符串值列表中。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | string[] | 是 | 表示指定的字符串值列表。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.inString("field", ['test1', 'test2']);
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
notInNumber8+
notInNumber(field: string, valueList: number[]): Query
構造一個Query對象以查詢具有指定字段的條目,該字段的值不在指定的值列表中。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | number[] | 是 | 表示指定的值列表。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.notInNumber("field", [0, 1]);
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
notInString8+
notInString(field: string, valueList: string[]): Query
構造一個Query對象以查詢具有指定字段且值不在指定字符串值列表中的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | string[] | 是 | 表示指定的字符串值列表。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.notInString("field", ['test1', 'test2']);
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
like8+
like(field: string, value: string): Query
構造一個Query對象以查詢具有與指定字符串值相似的指定字段的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | string | 是 | 表示指定的字符串值。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.like("field", "value");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
unlike8+
unlike(field: string, value: string): Query
構造一個Query對象以查詢具有與指定字符串值不相似的指定字段的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | string | 是 | 表示指定的字符串值。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.unlike("field", "value");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
and8+
and(): Query
構造一個帶有與條件的查詢對象。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
[Query] | 返回查詢對象。 |
示例:
try {
let query = new distributedData.Query();
query.notEqualTo("field", "value1");
query.and();
query.notEqualTo("field", "value2");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
or8+
or(): Query
構造一個帶有或條件的Query對象。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
[Query] | 返回查詢對象。 |
示例:
try {
let query = new distributedData.Query();
query.notEqualTo("field", "value1");
query.or();
query.notEqualTo("field", "value2");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
orderByAsc8+
orderByAsc(field: string): Query
構造一個Query對象,將查詢結果按升序排序。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.notEqualTo("field", "value");
query.orderByAsc("field");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
orderByDesc8+
orderByDesc(field: string): Query
構造一個Query對象,將查詢結果按降序排序。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.notEqualTo("field", "value");
query.orderByDesc("field");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#limit8)limit8+
limit(total: number, offset: number): Query
構造一個Query對象來指定結果的數量和開始位置。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
total | number | 是 | 表示指定的結果數。 |
offset | number | 是 | 表示起始位置。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
let total = 10;
let offset = 1;
try {
let query = new distributedData.Query();
query.notEqualTo("field", "value");
query.limit(total, offset);
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
isNotNull8+
isNotNull(field: string): Query
構造一個Query對象以查詢具有值不為null的指定字段的條目。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.isNotNull("field");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
beginGroup8+
beginGroup(): Query
創建一個帶有左括號的查詢條件組。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.beginGroup();
query.isNotNull("field");
query.endGroup();
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#endgroup8)endGroup8+
endGroup(): Query
創建一個帶有右括號的查詢條件組。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.beginGroup();
query.isNotNull("field");
query.endGroup();
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
prefixKey8+
prefixKey(prefix: string): Query
創建具有指定鍵前綴的查詢條件。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
prefix | string | 是 | 表示指定的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.prefixKey("$.name");
query.prefixKey("0");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
setSuggestIndex8+
setSuggestIndex(index: string): Query
設置一個指定的索引,將優先用于查詢。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
index | string | 是 | 指示要設置的索引。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.setSuggestIndex("$.name");
query.setSuggestIndex("0");
console.log("query is " + query.getSqlLike());
query = null;
} catch (e) {
console.log("duplicated calls should be ok :" + e);
}
deviceId8+
deviceId(deviceId:string):Query
添加設備ID作為key的前綴。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 指示查詢的設備ID。 |
返回值:
類型 | 說明 |
---|---|
[Query] | 返回Query對象。 |
示例:
try {
let query = new distributedData.Query();
query.deviceId("deviceId");
console.log("query is " + query.getSqlLike());
} catch (e) {
console.log("should be ok on Method Chaining : " + e);
}
getSqlLike8+
getSqlLike():string
獲取Query對象的查詢語句。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
string | 返回一個字段列中包含對應子串的結果。 |
示例:
try {
let query = new distributedData.Query();
let sql1 = query.getSqlLike();
console.log("GetSqlLike sql=" + sql1);
} catch (e) {
console.log("duplicated calls should be ok : " + e);
}
KVStore
KVStore數據庫實例,提供增加數據、刪除數據和訂閱數據變更、訂閱數據同步完成的方法。
在調用KVStore的方法前,需要先通過[getKVStore]構建一個KVStore實例。
put
put(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback): void
添加指定類型鍵值對到數據庫,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要添加數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。 |
value | Uint8Array | string | number |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
if (err != undefined) {
console.log("put err: " + JSON.stringify(err));
return;
}
console.log("put success");
});
}catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
put
put(key: string, value: Uint8Array | string | number | boolean): Promise
添加指定類型鍵值對到數據庫,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要添加數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。 |
value | Uint8Array | string | number |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) = > {
console.log("put success: " + JSON.stringify(data));
}).catch((err) = > {
console.log("put err: " + JSON.stringify(err));
});
}catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
delete
delete(key: string, callback: AsyncCallback): void
從數據庫中刪除指定鍵值的數據,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要刪除數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
if (err != undefined) {
console.log("put err: " + JSON.stringify(err));
return;
}
console.log("put success");
kvStore.delete(KEY_TEST_STRING_ELEMENT, function (err,data) {
if (err != undefined) {
console.log("delete err: " + JSON.stringify(err));
return;
}
console.log("delete success");
});
});
}catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
delete
delete(key: string): Promise
從數據庫中刪除指定鍵值的數據,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要刪除數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) = > {
console.log("put success: " + JSON.stringify(data));
kvStore.delete(KEY_TEST_STRING_ELEMENT).then((data) = > {
console.log("delete success");
}).catch((err) = > {
console.log("delete err: " + JSON.stringify(err));
});
}).catch((err) = > {
console.log("put err: " + JSON.stringify(err));
});
}catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
on('dataChange')
on(event: 'dataChange', type: SubscribeType, observer: Callback): void
訂閱指定類型的數據變更通知。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'dataChange',表示數據變更事件。 |
type | [SubscribeType] | 是 | 表示訂閱的類型。 |
observer | Callback<[ChangeNotification]> | 是 | 回調函數。 |
示例:
let kvStore;
kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) {
console.log("dataChange callback call data: " + JSON.stringify(data));
});
on('syncComplete')
on(event: 'syncComplete', syncCallback: Callback>): void
訂閱同步完成事件回調通知。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'syncComplete',表示同步完成事件。 |
syncCallback | Callback> | 是 | 回調函數。 |
示例:
let kvStore;
kvStore.on('syncComplete', function (data) {
console.log("callback call data: " + data);
});
off('dataChange')8+
off(event:'dataChange', observer?: Callback): void
取消訂閱數據變更通知。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 取消訂閱的事件名,固定為'dataChange',表示數據變更事件。 |
observer | Callback<[ChangeNotification]> | 否 | 回調函數。 |
示例:
let kvStore;
kvStore.on('dataChange', function (data) {
console.log("callback call data: " + data);
});
kvStore.off('dataChange', function (data) {
console.log("callback call data: " + data);
});
putBatch8+
putBatch(entries: Entry[], callback: AsyncCallback): void
批量插入鍵值對到KVStore數據庫中,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
entries | [Entry][] | 是 | 表示要批量插入的鍵值對。 |
callback | Asyncallback | 是 | 回調函數。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries, async function (err,data) {
console.log('putBatch success');
kvStore.getEntries('batch_test_string_key', function (err,entries) {
console.log('getEntries success');
console.log('entries.length: ' + entries.length);
console.log('entries[0]: ' + JSON.stringify(entries[0]));
});
});
}catch(e) {
console.log('PutBatch e ' + JSON.stringify(e));
}
[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#putbatch8-1)putBatch8+
putBatch(entries: Entry[]): Promise
批量插入鍵值對到KVStore數據庫中,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
entries | [Entry][] | 是 | 表示要批量插入的鍵值對。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
kvStore.getEntries('batch_test_string_key').then((entries) = > {
console.log('getEntries success');
console.log('PutBatch ' + JSON.stringify(entries));
}).catch((err) = > {
console.log('getEntries fail ' + JSON.stringify(err));
});
}).catch((err) = > {
console.log('putBatch fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('PutBatch e ' + JSON.stringify(e));
}
deleteBatch8+
deleteBatch(keys: string[], callback: AsyncCallback): void
批量刪除KVStore數據庫中的鍵值對,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
keys | string[] | 是 | 表示要批量刪除的鍵值對。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
try {
let entries = [];
let keys = [];
for (var i = 0; i < 5; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
keys.push(key + i);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries, async function (err,data) {
console.log('putBatch success');
kvStore.deleteBatch(keys, async function (err,data) {
console.log('deleteBatch success');
});
});
}catch(e) {
console.log('DeleteBatch e ' + e);
}
deleteBatch8+
deleteBatch(keys: string[]): Promise
批量刪除KVStore數據庫中的鍵值對,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
keys | string[] | 是 | 表示要批量刪除的鍵值對。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
let entries = [];
let keys = [];
for (var i = 0; i < 5; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
keys.push(key + i);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
kvStore.deleteBatch(keys).then((err) = > {
console.log('deleteBatch success');
}).catch((err) = > {
console.log('deleteBatch fail ' + JSON.stringify(err));
});
}).catch((err) = > {
console.log('putBatch fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('DeleteBatch e ' + e);
}
startTransaction8+
startTransaction(callback: AsyncCallback): void
啟動KVStore數據庫中的事務,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
function putBatchString(len, prefix) {
let entries = [];
for (var i = 0; i < len; i++) {
var entry = {
key : prefix + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
return entries;
}
try {
var count = 0;
kvStore.on('dataChange', 0, function (data) {
console.log('startTransaction 0' + data)
count++;
});
kvStore.startTransaction(async function (err,data) {
console.log('startTransaction success');
let entries = putBatchString(10, 'batch_test_string_key');
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries, async function (err,data) {
console.log('putBatch success');
});
});
}catch(e) {
console.log('startTransaction e ' + e);
}
startTransaction8+
startTransaction(): Promise
啟動KVStore數據庫中的事務,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
var count = 0;
kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_ALL, function (data) {
console.log('startTransaction ' + JSON.stringify(data));
count++;
});
kvStore.startTransaction().then(async (err) = > {
console.log('startTransaction success');
}).catch((err) = > {
console.log('startTransaction fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('startTransaction e ' + e);
}
commit8+
commit(callback: AsyncCallback): void
提交KVStore數據庫中的事務,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
try {
kvStore.commit(function (err,data) {
if (err == undefined) {
console.log('commit success');
} else {
console.log('commit fail');
}
});
}catch(e) {
console.log('Commit e ' + e);
}
commit8+
commit(): Promise
提交KVStore數據庫中的事務,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
kvStore.commit().then(async (err) = > {
console.log('commit success');
}).catch((err) = > {
console.log('commit fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('Commit e ' + e);
}
rollback8+
rollback(callback: AsyncCallback): void
在KVStore數據庫中回滾事務,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
try {
kvStore.rollback(function (err,data) {
if (err == undefined) {
console.log('commit success');
} else {
console.log('commit fail');
}
});
}catch(e) {
console.log('Rollback e ' + e);
}
rollback8+
rollback(): Promise
在KVStore數據庫中回滾事務,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
kvStore.rollback().then(async (err) = > {
console.log('rollback success');
}).catch((err) = > {
console.log('rollback fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('Rollback e ' + e);
}
enableSync8+
enableSync(enabled: boolean, callback: AsyncCallback): void
設定是否開啟同步,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
enabled | boolean | 是 | 設定是否開啟同步,true表示開啟同步,false表示不啟用同步。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
try {
kvStore.enableSync(true, function (err,data) {
if (err == undefined) {
console.log('enableSync success');
} else {
console.log('enableSync fail');
}
});
}catch(e) {
console.log('EnableSync e ' + e);
}
enableSync8+
enableSync(enabled: boolean): Promise
設定是否開啟同步,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
enabled | boolean | 是 | 設定是否開啟同步,true表示開啟同步,false表示不啟用同步。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
kvStore.enableSync(true).then((err) = > {
console.log('enableSync success');
}).catch((err) = > {
console.log('enableSync fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('EnableSync e ' + e);
}
setSyncRange8+
setSyncRange(localLabels: string[], remoteSupportLabels: string[], callback: AsyncCallback): void
設置同步范圍標簽,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
localLabels | string[] | 是 | 表示本地設備的同步標簽。 |
remoteSupportLabels | string[] | 是 | 表示要同步數據的設備的同步標簽。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
try {
const localLabels = ['A', 'B'];
const remoteSupportLabels = ['C', 'D'];
kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err,data) {
console.log('SetSyncRange put success');
});
}catch(e) {
console.log('SetSyncRange e ' + e);
}
setSyncRange8+
setSyncRange(localLabels: string[], remoteSupportLabels: string[]): Promise
設置同步范圍標簽,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
localLabels | string[] | 是 | 表示本地設備的同步標簽。 |
remoteSupportLabels | string[] | 是 | 表示要同步數據的設備的同步標簽。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
const localLabels = ['A', 'B'];
const remoteSupportLabels = ['C', 'D'];
kvStore.setSyncRange(localLabels, remoteSupportLabels).then((err) = > {
console.log('setSyncRange success');
}).catch((err) = > {
console.log('delete fail ' + err);
});
}catch(e) {
console.log('SetSyncRange e ' + e);
}
SubscribeType
訂閱類型枚舉。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 值 | 說明 |
---|---|---|
SUBSCRIBE_TYPE_LOCAL | 0 | 表示訂閱本地數據變更。 |
SUBSCRIBE_TYPE_REMOTE | 1 | 表示訂閱遠端數據變更。 |
SUBSCRIBE_TYPE_ALL | 2 | 表示訂閱遠端和本地數據變更。 |
ChangeNotification
數據變更時通知的對象,包括數據插入的數據、更新的數據、刪除的數據和設備ID。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 參數類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
insertEntries | [Entry][] | 是 | 是 | 數據添加記錄。 |
updateEntries | [Entry][] | 是 | 是 | 數據更新記錄。 |
deleteEntries | [Entry][] | 是 | 是 | 數據刪除記錄。 |
deviceId | string | 是 | 是 | 設備ID,此處為設備UUID。 |
Entry
存儲在數據庫中的鍵值對。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 參數類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
key | string | 是 | 是 | 鍵值。 |
value | [Value] | 是 | 是 | 值對象。 |
Value
存儲在數據庫中的值對象。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 參數類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
type | [ValueType] | 是 | 是 | 值類型。 |
value | Uint8Array | string | number | boolean |
ValueType
數據類型枚舉。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 值 | 說明 |
---|---|---|
STRING | 0 | 表示值類型為字符串。 |
INTEGER | 1 | 表示值類型為整數。 |
FLOAT | 2 | 表示值類型為浮點數。 |
BYTE_ARRAY | 3 | 表示值類型為字節數組。 |
BOOLEAN | 4 | 表示值類型為布爾值。 |
DOUBLE | 5 | 表示值類型為雙浮點數。 |
SingleKVStore
單版本數據庫,繼承自[KVStore]數據庫,提供查詢數據和同步數據的方法。
單版本數據庫,不對數據所屬設備進行區分,不同設備使用相同鍵寫入數據會互相覆蓋。比如,可以使用單版本數據庫實現個人日歷、聯系人數據在不同設備間的數據同步。
在調用SingleKVStore的方法前,需要先通過[getKVStore]構建一個SingleKVStore實例。
get
get(key: string, callback: AsyncCallback): void
獲取指定鍵的值,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。 |
callback | AsyncCallback) | 是 | 回調函數。返回獲取查詢的值。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
if (err != undefined) {
console.log("put err: " + JSON.stringify(err));
return;
}
console.log("put success");
kvStore.get(KEY_TEST_STRING_ELEMENT, function (err,data) {
console.log("get success data: " + data);
});
});
}catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
get
get(key: string): Promise
獲取指定鍵的值,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數據的key,不能為空且長度不大于[MAX_KEY_LENGTH]。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise對象。返回獲取查詢的值。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) = > {
console.log("put success: " + JSON.stringify(data));
kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) = > {
console.log("get success data: " + data);
}).catch((err) = > {
console.log("get err: " + JSON.stringify(err));
});
}).catch((err) = > {
console.log("put err: " + JSON.stringify(err));
});
}catch (e) {
console.log("An unexpected error occurred. Error:" + e);
}
getEntries8+
getEntries(keyPrefix: string, callback: AsyncCallback): void
獲取匹配指定鍵前綴的所有鍵值對,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<[Entry][]> | 是 | 回調函數。返回匹配指定前綴的鍵值對列表。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_number_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.INTEGER,
value : 222
}
}
entries.push(entry);
}
kvStore.putBatch(entries, async function (err,data) {
console.log('putBatch success');
kvStore.getEntries('batch_test_number_key', function (err,entries) {
console.log('getEntries success');
console.log('entries.length: ' + entries.length);
console.log('entries[0]: ' + JSON.stringify(entries[0]));
});
});
}catch(e) {
console.log('PutBatch e ' + e);
}
getEntries8+
getEntries(keyPrefix: string): Promise
獲取匹配指定鍵前綴的所有鍵值對,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<[Entry][]> | Promise對象。返回匹配指定前綴的鍵值對列表。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
console.log('entries: ' + entries);
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
kvStore.getEntries('batch_test_string_key').then((entries) = > {
console.log('getEntries success');
console.log('entries.length: ' + entries.length);
console.log('entries[0]: ' + JSON.stringify(entries[0]));
console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
console.log('entries[0].value.value: ' + entries[0].value.value);
}).catch((err) = > {
console.log('getEntries fail ' + JSON.stringify(err));
});
}).catch((err) = > {
console.log('putBatch fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('PutBatch e ' + e);
}
[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#getentries8-2)getEntries8+
getEntries(query: Query, callback: AsyncCallback): void
獲取與指定Query對象匹配的鍵值對列表,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<[Entry][]> | 是 | 回調函數。返回與指定Query對象匹配的鍵值對列表。 |
示例:
let kvStore;
try {
var arr = new Uint8Array([21,31]);
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_bool_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.BYTE_ARRAY,
value : arr
}
}
entries.push(entry);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries, async function (err,data) {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getEntries(query, function (err,entries) {
console.log('getEntries success');
console.log('entries.length: ' + entries.length);
console.log('entries[0]: ' + JSON.stringify(entries[0]));
});
});
console.log('GetEntries success');
}catch(e) {
console.log('GetEntries e ' + e);
}
getEntries8+
getEntries(query: Query): Promise
獲取與指定Query對象匹配的鍵值對列表,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<[Entry][]> | Promise對象。返回與指定Query對象匹配的鍵值對列表。 |
示例:
let kvStore;
try {
var arr = new Uint8Array([21,31]);
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_bool_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.BYTE_ARRAY,
value : arr
}
}
entries.push(entry);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getEntries(query).then((entries) = > {
console.log('getEntries success');
}).catch((err) = > {
console.log('getEntries fail ' + JSON.stringify(err));
});
}).catch((err) = > {
console.log('GetEntries putBatch fail ' + JSON.stringify(err))
});
console.log('GetEntries success');
}catch(e) {
console.log('GetEntries e ' + e);
}
getResultSet8+[]()
getResultSet(keyPrefix: string, callback: AsyncCallback): void
從KvStore數據庫中獲取具有指定前綴的結果集,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<[KvStoreResultSet]> | 是 | 回調函數。返回具有指定前綴的結果集。 |
示例:
let kvStore;
try {
let resultSet;
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries, async function (err, data) {
console.log('GetResultSet putBatch success');
kvStore.getResultSet('batch_test_string_key', async function (err, result) {
console.log('GetResultSet getResultSet succeed.');
resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) {
console.log('GetResultSet closeResultSet success');
})
});
});
}catch(e) {
console.log('GetResultSet e ' + e);
}
getResultSet8+
getResultSet(keyPrefix: string): Promise
從KVStore數據庫中獲取具有指定前綴的結果集,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<[KvStoreResultSet]> | Promise對象。返回具有指定前綴的結果集。 |
示例:
let kvStore;
try {
let resultSet;
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
}).catch((err) = > {
console.log('PutBatch putBatch fail ' + JSON.stringify(err));
});
kvStore.getResultSet('batch_test_string_key').then((result) = > {
console.log('GetResult getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + JSON.stringify(err));
});
kvStore.closeResultSet(resultSet).then((err) = > {
console.log('GetResult closeResultSet success');
}).catch((err) = > {
console.log('closeResultSet fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('GetResult e ' + e);
}
getResultSet8+
getResultSet(query: Query, callback: AsyncCallback): void
獲取與指定Query對象匹配的KvStoreResultSet對象,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | Query | 是 | 表示查詢對象。 |
callback | AsyncCallback<[KvStoreResultSet]> | 是 | 回調函數,獲取與指定Query對象匹配的KvStoreResultSet對象。 |
示例:
let kvStore;
try {
let resultSet;
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries, async function (err, data) {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getResultSet(query, async function (err, result) {
console.log('getResultSet succeed.');
resultSet = result;
});
});
} catch(e) {
console.log('GetResultSet e ' + e);
}
getResultSet8+
getResultSet(query: Query): Promise
獲取與指定Query對象匹配的KvStoreResultSet對象,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<[KvStoreResultSet]> | Promise對象。獲取與指定Query對象匹配的KvStoreResultSet對象。 |
示例:
let kvStore;
try {
let resultSet;
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
}).catch((err) = > {
console.log('putBatch fail ' + JSON.stringify(err));
});
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getResultSet(query).then((result) = > {
console.log(' getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + JSON.stringify(err));
});
}catch(e) {
console.log('GetResultSet e ' + e);
}
closeResultSet8+
closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback): void
關閉由[SingleKvStore.getResultSet]返回的KvStoreResultSet對象,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
resultSet | [KvStoreResultSet] | 是 | 表示要關閉的KvStoreResultSet對象。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
try {
let resultSet = null;
kvStore.closeResultSet(resultSet, function (err, data) {
if (err == undefined) {
console.log('closeResultSet success');
} else {
console.log('closeResultSet fail');
}
});
}catch(e) {
console.log('CloseResultSet e ' + e);
}
closeResultSet8+
closeResultSet(resultSet: KvStoreResultSet): Promise
關閉由[SingleKvStore.getResultSet]返回的KvStoreResultSet對象,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
resultSet | [KvStoreResultSet] | 是 | 表示要關閉的KvStoreResultSet對象。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
let resultSet = null;
kvStore.closeResultSet(resultSet).then(() = > {
console.log('closeResultSet success');
}).catch((err) = > {
console.log('closeResultSet fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('CloseResultSet e ' + e);
}
getResultSize8+
getResultSize(query: Query, callback: AsyncCallback): void
獲取與指定Query對象匹配的結果數,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
callback | AsyncCallback | 是 | 回調函數。返回與指定Query對象匹配的結果數。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries, async function (err, data) {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getResultSize(query, async function (err, resultSize) {
console.log('getResultSet succeed.');
});
});
} catch(e) {
console.log('GetResultSize e ' + e);
}
getResultSize8+
getResultSize(query: Query): Promise
獲取與指定Query對象匹配的結果數,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise對象。獲取與指定Query對象匹配的結果數。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
}).catch((err) = > {
console.log('putBatch fail ' + JSON.stringify(err));
});
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getResultSize(query).then((resultSize) = > {
console.log('getResultSet succeed.');
}).catch((err) = > {
console.log('getResultSet failed: ' + JSON.stringify(err));
});
}catch(e) {
console.log('GetResultSize e ' + e);
}
removeDeviceData8+
removeDeviceData(deviceId: string, callback: AsyncCallback): void
刪除指定設備的數據,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 表示要刪除設備的名稱。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) {
console.log('put success');
const deviceid = 'no_exist_device_id';
kvStore.removeDeviceData(deviceid, async function (err,data) {
if (err == undefined) {
console.log('removeDeviceData success');
} else {
console.log('removeDeviceData fail');
kvStore.get(KEY_TEST_STRING_ELEMENT, async function (err,data) {
console.log('RemoveDeviceData get success');
});
}
});
});
}catch(e) {
console.log('RemoveDeviceData e ' + e);
}
removeDeviceData8+
removeDeviceData(deviceId: string): Promise
刪除指定設備的數據,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 表示要刪除設備的名稱。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((err) = > {
console.log('removeDeviceData put success');
}).catch((err) = > {
console.log('put fail ' + JSON.stringify(err));
});
const deviceid = 'no_exist_device_id';
kvStore.removeDeviceData(deviceid).then((err) = > {
console.log('removeDeviceData success');
}).catch((err) = > {
console.log('removeDeviceData fail ' + JSON.stringify(err));
});
kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) = > {
console.log('get success data:' + data);
}).catch((err) = > {
console.log('RemoveDeviceData get fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('RemoveDeviceData e ' + e);
}
on('syncComplete')8+
on(event: 'syncComplete', syncCallback: Callback>): void
訂閱同步完成事件回調通知。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'syncComplete',表示同步完成事件。 |
syncCallback | Callback> | 是 | 回調函數。用于向調用方發送同步結果的回調。 |
示例:
let kvStore;
const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
const VALUE_TEST_FLOAT_ELEMENT = 321.12;
try {
kvStore.on('syncComplete', function (data) {
console.log('syncComplete ' + data)
});
kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) = > {
console.log('syncComplete put success');
}).catch((error) = > {
console.log('syncComplete put fail ' + error);
});
}catch(e) {
console.log('syncComplete put e ' + e);
}
off('syncComplete')8+
off(event: 'syncComplete', syncCallback?: Callback>): void
取消訂閱同步完成事件回調通知。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 取消訂閱的事件名,固定為'syncComplete',表示同步完成事件。 |
syncCallback | Callback> | 否 | 回調函數。用于向調用方發送同步結果的回調。 |
示例:
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);
}
sync
sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void
在手動同步方式下,觸發數據庫同步。關于分布式數據服務的同步方式說明,請見[分布式數據服務概述]。
需要權限 : ohos.permission.DISTRIBUTED_DATASYNC。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceIdList | string[] | 是 | 同一組網環境下,需要同步的設備的deviceId列表。 |
mode | [SyncMode] | 是 | 同步模式。 |
allowedDelayMs | number | 否 | 可選參數,允許延時時間,單位:ms(毫秒)。 |
示例:
let kvStore;
kvStore.sync('deviceIds', distributedData.SyncMode.PULL_ONLY, 1000);
etSyncParam8+
setSyncParam(defaultAllowedDelayMs: number, callback: AsyncCallback): void
設置數據庫同步允許的默認延遲,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
defaultAllowedDelayMs | number | 是 | 表示數據庫同步允許的默認延遲,以毫秒為單位。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
try {
const defaultAllowedDelayMs = 500;
kvStore.setSyncParam(defaultAllowedDelayMs, function (err,data) {
console.log('SetSyncParam put success');
});
}catch(e) {
console.log('testSingleKvStoreSetSyncParam e ' + e);
}
setSyncParam8+
setSyncParam(defaultAllowedDelayMs: number): Promise
設置數據庫同步允許的默認延遲,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
defaultAllowedDelayMs | number | 是 | 表示數據庫同步允許的默認延遲,以毫秒為單位。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
const defaultAllowedDelayMs = 500;
kvStore.setSyncParam(defaultAllowedDelayMs).then((err) = > {
console.log('SetSyncParam put success');
}).catch((err) = > {
console.log('SetSyncParam put fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('SetSyncParam e ' + e);
}
getSecurityLevel8+
getSecurityLevel(callback: AsyncCallback): void
獲取數據庫的安全級別,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<[SecurityLevel]> | 是 | 回調函數。返回數據庫的安全級別。 |
示例:
let kvStore;
try {
kvStore.getSecurityLevel(function (err,data) {
console.log('getSecurityLevel success');
});
}catch(e) {
console.log('GetSecurityLevel e ' + e);
}
getSecurityLevel8+
getSecurityLevel(): Promise
獲取數據庫的安全級別,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise<[SecurityLevel]> | Promise對象。返回數據庫的安全級別。 |
示例:
let kvStore;
try {
kvStore.getSecurityLevel().then((data) = > {
console.log(' getSecurityLevel success');
}).catch((err) = > {
console.log('getSecurityLevel fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('GetSecurityLevel e ' + e);
}
DeviceKVStore8+
設備協同數據庫,繼承自KVStore,提供查詢數據和同步數據的方法。
設備協同數據庫,以設備維度對數據進行區分,每臺設備僅能寫入和修改本設備的數據,其它設備的數據對其是只讀的,無法修改其它設備的數據。
比如,可以使用設備協同數據庫實現設備間的圖片分享,可以查看其他設備的圖片,但無法修改和刪除其他設備的圖片。
在調用DeviceKVStore的方法前,需要先通過[getKVStore]構建一個DeviceKVStore實例。
get8+
get(deviceId: string, key: string, callback: AsyncCallback): void
獲取與指定設備ID和key匹配的string值,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數據的設備。 |
key | string | 是 | 表示要查詢key值的鍵。 |
callback | AsyncCallback | 是 | 回調函數,返回匹配給定條件的字符串值。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
try{
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) {
console.log('put success');
kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, function (err,data) {
console.log('get success');
});
})
}catch(e) {
console.log('get e' + e);
}
get8+
get(deviceId: string, key: string): Promise
獲取與指定設備ID和key匹配的string值,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數據的設備。 |
key | string | 是 | 表示要查詢key值的鍵。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise對象。返回匹配給定條件的字符串值。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(async (data) = > {
console.log(' put success');
kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) = > {
console.log('get success');
}).catch((err) = > {
console.log('get fail ' + JSON.stringify(err));
});
}).catch((error) = > {
console.log('put error' + error);
});
} catch (e) {
console.log('Get e ' + e);
}
getEntries8+
getEntries(deviceId: string, keyPrefix: string, callback: AsyncCallback): void
獲取與指定設備ID和key前綴匹配的所有鍵值對,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數據的設備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<[Entry][]> | 是 | 回調函數,返回滿足給定條件的所有鍵值對的列表。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
console.log('entries: ' + entries);
kvStore.putBatch(entries, async function (err,data) {
console.log('putBatch success');
kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err,entries) {
console.log('getEntries success');
console.log('entries.length: ' + entries.length);
console.log('entries[0]: ' + JSON.stringify(entries[0]));
});
});
}catch(e) {
console.log('PutBatch e ' + e);
}
getEntries8+
getEntries(deviceId: string, keyPrefix: string): Promise
獲取與指定設備ID和key前綴匹配的所有鍵值對,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數據的設備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<[Entry][]> | Promise對象。返回匹配給定條件的所有鍵值對的列表。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
console.log('entries: ' + entries);
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) = > {
console.log('getEntries success');
console.log('entries.length: ' + entries.length);
console.log('entries[0]: ' + JSON.stringify(entries[0]));
console.log('entries[0].value: ' + JSON.stringify(entries[0].value));
console.log('entries[0].value.value: ' + entries[0].value.value);
}).catch((err) = > {
console.log('getEntries fail ' + JSON.stringify(err));
});
}).catch((err) = > {
console.log('putBatch fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('PutBatch e ' + e);
}
getEntries8+
getEntries(query: Query, callback: AsyncCallback): void
獲取與指定Query對象匹配的鍵值對列表,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
callback | AsyncCallback<[Entry][]> | 是 | 回調函數,返回與指定Query對象匹配的鍵值對列表。 |
示例:
let kvStore;
try {
var arr = new Uint8Array([21,31]);
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_bool_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.BYTE_ARRAY,
value : arr
}
}
entries.push(entry);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries, async function (err,data) {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
query.deviceId('localDeviceId');
kvStore.getEntries(query, function (err,entries) {
console.log('getEntries success');
console.log('entries.length: ' + entries.length);
console.log('entries[0]: ' + JSON.stringify(entries[0]));
});
});
console.log('GetEntries success');
}catch(e) {
console.log('GetEntries e ' + e);
}
getEntries8+
getEntries(query: Query): Promise
獲取與指定Query對象匹配的鍵值對列表,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<[Entry][]> | Promise對象。返回與指定Query對象匹配的鍵值對列表。 |
示例:
let kvStore;
try {
var arr = new Uint8Array([21,31]);
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_bool_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.BYTE_ARRAY,
value : arr
}
}
entries.push(entry);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getEntries(query).then((entries) = > {
console.log('getEntries success');
}).catch((err) = > {
console.log('getEntries fail ' + JSON.stringify(err));
});
}).catch((err) = > {
console.log('GetEntries putBatch fail ' + JSON.stringify(err))
});
console.log('GetEntries success');
}catch(e) {
console.log('GetEntries e ' + e);
}
getEntries8+
getEntries(deviceId: string, query: Query, callback: AsyncCallback): void
獲取與指定設備ID和Query對象匹配的鍵值對列表,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 鍵值對所屬的設備ID。 |
query | [Query] | 是 | 表示查詢對象。 |
callback | AsyncCallback<[Entry][]> | 是 | 回調函數。返回與指定設備ID和Query對象匹配的鍵值對列表。 |
示例:
let kvStore;
try {
var arr = new Uint8Array([21,31]);
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_bool_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.BYTE_ARRAY,
value : arr
}
}
entries.push(entry);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries, async function (err,data) {
console.log('putBatch success');
var query = new distributedData.Query();
query.deviceId('localDeviceId');
query.prefixKey("batch_test");
kvStore.getEntries('localDeviceId', query, function (err,entries) {
console.log('getEntries success');
console.log('entries.length: ' + entries.length);
console.log('entries[0]: ' + JSON.stringify(entries[0]));
})
});
console.log('GetEntries success');
}catch(e) {
console.log('GetEntries e ' + e);
}
getEntries8+
getEntries(deviceId: string, query: Query): Promise
獲取與指定設備ID和Query對象匹配的鍵值對列表,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 鍵值對所屬的設備ID。 |
query | [Query] | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<[Entry][]> | Promise對象。返回與指定設備ID和Query對象匹配的鍵值對列表。 |
示例:
let kvStore;
try {
var arr = new Uint8Array([21,31]);
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_bool_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.BYTE_ARRAY,
value : arr
}
}
entries.push(entry);
}
console.log('entries: ' + JSON.stringify(entries));
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
var query = new distributedData.Query();
query.deviceId('localDeviceId');
query.prefixKey("batch_test");
kvStore.getEntries('localDeviceId', query).then((entries) = > {
console.log('getEntries success');
}).catch((err) = > {
console.log('getEntries fail ' + JSON.stringify(err));
});
}).catch((err) = > {
console.log('putBatch fail ' + JSON.stringify(err));
});
console.log('GetEntries success');
}catch(e) {
console.log('GetEntries e ' + e);
}
getResultSet8+[]()
getResultSet(deviceId: string, keyPrefix: string, callback: AsyncCallback): void
獲取與指定設備ID和key前綴匹配的KvStoreResultSet對象,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數據的設備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<[KvStoreResultSet][]> | 是 | 回調函數。返回與指定設備ID和key前綴匹配的KvStoreResultSet對象。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('localDeviceId', 'batch_test_string_key', async function (err, result) {
console.log('getResultSet succeed.');
resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) {
console.log('closeResultSet success');
})
});
}catch(e) {
console.log('GetResultSet e ' + e);
}
getResultSet8+
getResultSet(deviceId: string, keyPrefix: string): Promise
獲取與指定設備ID和key前綴匹配的KvStoreResultSet對象,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數據的設備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<[KvStoreResultSet][]> | Promise對象。返回與指定設備ID和key前綴匹配的KvStoreResultSet對象。 |
示例:
let kvStore;
try {
let resultSet;
kvStore.getResultSet('localDeviceId', 'batch_test_string_key').then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + JSON.stringify(err));
});
kvStore.closeResultSet(resultSet).then((err) = > {
console.log('closeResultSet success');
}).catch((err) = > {
console.log('closeResultSet fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('GetResultSet e ' + e);
}
getResultSet8+
getResultSet(query: Query, callback: AsyncCallback): void
獲取與指定Query對象匹配的KvStoreResultSet對象,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
callback | AsyncCallback<[KvStoreResultSet][]> | 是 | 回調函數,返回與指定Query對象匹配的KvStoreResultSet對象。 |
示例:
let kvStore;
try {
let resultSet;
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries, async function (err, data) {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
query.deviceId('localDeviceId');
kvStore.getResultSet(query, async function (err, result) {
console.log('getResultSet succeed.');
resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) {
console.log('closeResultSet success');
})
});
});
} catch(e) {
console.log('GetResultSet e ' + e);
}
getResultSet8+
getResultSet(query: Query): Promise
獲取與指定Query對象匹配的KvStoreResultSet對象,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<[KvStoreResultSet][]> | Promise對象。返回與指定Query對象匹配的KvStoreResultSet對象。 |
示例:
let kvStore;
try {
let resultSet;
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
}).catch((err) = > {
console.log('putBatch fail ' + err);
});
const query = new distributedData.Query();
query.deviceId('localDeviceId');
query.prefixKey("batch_test");
console.log("GetResultSet " + query.getSqlLike());
kvStore.getResultSet(query).then((result) = > {
console.log('getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('getResultSet failed: ' + JSON.stringify(err));
});
kvStore.closeResultSet(resultSet).then((err) = > {
console.log('closeResultSet success');
}).catch((err) = > {
console.log('closeResultSet fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('GetResultSet e ' + e);
}
getResultSet8+
getResultSet(deviceId: string, query: Query, callback: AsyncCallback): void
獲取與指定設備ID和Query對象匹配的KvStoreResultSet對象,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KvStoreResultSet對象所屬的設備ID。 |
query | [Query] | 是 | 表示查詢對象。 |
callback | AsyncCallback<[KvStoreResultSet][]> | 是 | 回調函數。返回與指定設備ID和Query對象匹配的KvStoreResultSet對象。 |
示例:
let kvStore;
try {
let resultSet;
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries, async function (err, data) {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getResultSet('localDeviceId', query, async function (err, result) {
console.log('getResultSet succeed.');
resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) {
console.log('closeResultSet success');
})
});
});
} catch(e) {
console.log('GetResultSet e ' + e);
}
getResultSet8+
getResultSet(deviceId: string, query: Query): Promise
獲取與指定設備ID和Query對象匹配的KvStoreResultSet對象,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KvStoreResultSet對象所屬的設備ID。 |
query | [Query] | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<[KvStoreResultSet][]> | Promise對象。返回與指定設備ID和Query對象匹配的KvStoreResultSet對象。 |
示例:
let kvStore;
try {
let resultSet;
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries).then(async (err) = > {
console.log('GetResultSet putBatch success');
}).catch((err) = > {
console.log('PutBatch putBatch fail ' + JSON.stringify(err));
});
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getResultSet('localDeviceId', query).then((result) = > {
console.log('GetResultSet getResultSet succeed.');
resultSet = result;
}).catch((err) = > {
console.log('GetResultSet getResultSet failed: ' + JSON.stringify(err));
});
query.deviceId('localDeviceId');
console.log("GetResultSet " + query.getSqlLike());
kvStore.closeResultSet(resultSet).then((err) = > {
console.log('GetResultSet closeResultSet success');
}).catch((err) = > {
console.log('GetResultSet closeResultSet fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('GetResultSet e ' + e);
}
closeResultSet8+
closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback): void
關閉由[DeviceKVStore.getResultSet]返回的KvStoreResultSet對象,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
resultSet | [KvStoreResultSet] | 是 | 指示要關閉的KvStoreResultSet對象。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
try {
console.log('CloseResultSet success');
let resultSet = null;
kvStore.closeResultSet(resultSet, function (err, data) {
if (err == undefined) {
console.log('closeResultSet success');
} else {
console.log('closeResultSet fail');
}
});
}catch(e) {
console.log('CloseResultSet e ' + e);
}
closeResultSet8+
closeResultSet(resultSet: KvStoreResultSet): Promise
關閉由[DeviceKVStore.getResultSet]返回的KvStoreResultSet對象,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
resultSet | [KvStoreResultSet] | 是 | 指示要關閉的KvStoreResultSet對象。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
try {
console.log('CloseResultSet success');
let resultSet = null;
kvStore.closeResultSet(resultSet).then(() = > {
console.log('closeResultSet success');
}).catch((err) = > {
console.log('closeResultSet fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('CloseResultSet e ' + e);
}
getResultSize8+
getResultSize(query: Query, callback: AsyncCallback): void
獲取與指定Query對象匹配的結果數,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
callback | AsyncCallback | 是 | 回調函數,返回與指定Query對象匹配的結果數。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries, async function (err, data) {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
query.deviceId('localDeviceId');
kvStore.getResultSize(query, async function (err, resultSize) {
console.log('getResultSet succeed.');
});
});
} catch(e) {
console.log('GetResultSize e ' + e);
}
[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Beta1/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md#getresultsize8-3)getResultSize8+
getResultSize(query: Query): Promise
獲取與指定Query對象匹配的結果數,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
query | [Query] | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise對象。返回與指定Query對象匹配的結果數。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
}).catch((err) = > {
console.log('putBatch fail ' + JSON.stringify(err));
});
const query = new distributedData.Query();
query.prefixKey("batch_test");
query.deviceId('localDeviceId');
kvStore.getResultSize(query).then((resultSize) = > {
console.log('getResultSet succeed.');
}).catch((err) = > {
console.log('getResultSet failed: ' + JSON.stringify(err));
});
}catch(e) {
console.log('GetResultSize e ' + e);
}
getResultSize8+
getResultSize(deviceId: string, query: Query, callback: AsyncCallback): void;
獲取與指定設備ID和Query對象匹配的結果數,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KvStoreResultSet對象所屬的設備ID。 |
query | [Query] | 是 | 表示查詢對象。 |
callback | AsyncCallback | 是 | 回調函數。返回與指定設備ID和Query對象匹配的結果數。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries, async function (err, data) {
console.log('putBatch success');
const query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getResultSize('localDeviceId', query, async function (err, resultSize) {
console.log('getResultSet succeed.');
});
});
} catch(e) {
console.log('GetResultSize e ' + e);
}
getResultSize8+
getResultSize(deviceId: string, query: Query): Promise
獲取與指定設備ID和Query對象匹配的結果數,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KvStoreResultSet對象所屬的設備ID。 |
query | [Query] | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise對象。返回與指定設備ID和Query對象匹配的結果數。 |
示例:
let kvStore;
try {
let entries = [];
for (var i = 0; i < 10; i++) {
var key = 'batch_test_string_key';
var entry = {
key : key + i,
value : {
type : distributedData.ValueType.STRING,
value : 'batch_test_string_value'
}
}
entries.push(entry);
}
kvStore.putBatch(entries).then(async (err) = > {
console.log('putBatch success');
}).catch((err) = > {
console.log('putBatch fail ' + JSON.stringify(err));
});
var query = new distributedData.Query();
query.prefixKey("batch_test");
kvStore.getResultSize('localDeviceId', query).then((resultSize) = > {
console.log('getResultSet succeed.');
}).catch((err) = > {
console.log('getResultSet failed: ' + JSON.stringify(err));
});
}catch(e) {
console.log('GetResultSize e ' + e);
}
removeDeviceData8+
removeDeviceData(deviceId: string, callback: AsyncCallback): void
從當前數據庫中刪除指定設備的數據,使用callback異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要刪除其數據的設備。 |
callback | AsyncCallback | 是 | 回調函數。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err,data) {
console.log('RemoveDeviceData put success');
const deviceid = 'no_exist_device_id';
kvStore.removeDeviceData(deviceid, async function (err,data) {
if (err == undefined) {
console.log('removeDeviceData success');
} else {
console.log('removeDeviceData fail');
kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, async function (err,data) {
console.log('RemoveDeviceData get success');
});
}
});
});
}catch(e) {
console.log('RemoveDeviceData e ' + e);
}
removeDeviceData8+
removeDeviceData(deviceId: string): Promise
從當前數據庫中刪除指定設備的數據,使用Promise異步回調。
系統能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要刪除其數據的設備。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((err) = > {
console.log('RemoveDeviceData put success');
}).catch((err) = > {
console.log('RemoveDeviceData put fail ' + JSON.stringify(err));
});
const deviceid = 'no_exist_device_id';
kvStore.removeDeviceData(deviceid).then((err) = > {
console.log('removeDeviceData success');
}).catch((err) = > {
console.log('removeDeviceData fail ' + JSON.stringify(err));
});
kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) = > {
console.log('RemoveDeviceData get success data:' + data);
}).catch((err) = > {
console.log('RemoveDeviceData get fail ' + JSON.stringify(err));
});
}catch(e) {
console.log('RemoveDeviceData e ' + e);
}
sync8+
sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void
在手動同步方式下,觸發數據庫同步。關于分布式數據服務的同步方式說明,請見[分布式數據服務概述]。
需要權限 : ohos.permission.DISTRIBUTED_DATASYNC。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
deviceIdList | string[] | 是 | 需要同步DeviceKvStore數據庫的設備ID列表。 |
mode | [SyncMode] | 是 | 同步模式。 |
allowedDelayMs | number | 否 | 可選參數,允許延時時間,單位:ms(毫秒)。 |
示例:
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;
kvStore.sync(devices, mode);
});
}catch(e) {
console.log('Sync e' + e);
}
on('syncComplete')8+
on(event: 'syncComplete', syncCallback: Callback>): void
訂閱同步完成事件回調通知。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'syncComplete',表示同步完成事件。 |
syncCallback | Callback> | 是 | 回調函數。用于向調用方發送同步結果的回調。 |
示例:
let kvStore;
const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
const VALUE_TEST_FLOAT_ELEMENT = 321.12;
try {
kvStore.on('syncComplete', function (data) {
console.log('syncComplete ' + data)
});
kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) = > {
console.log('syncComplete put success');
}).catch((error) = > {
console.log('syncComplete put fail ' + error);
});
}catch(e) {
console.log('syncComplete put e ' + e);
}
off('syncComplete')8+
off(event: 'syncComplete', syncCallback?: Callback>): void
取消訂閱同步完成事件回調通知,該方法為同步方法。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
參數:
參數名 | 參數類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 取消訂閱的事件名,固定為'syncComplete',表示同步完成事件。 |
syncCallback | Callback> | 否 | 回調函數。用于向調用方發送同步結果的回調。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
示例:
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);
}
SyncMode
同步模式枚舉。
系統能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 值 | 說明 |
---|---|---|
PULL_ONLY | 0 | 表示只能從遠端拉取數據到本端。 |
PUSH_ONLY | 1 | 表示只能從本端推送數據到遠端。 |
PUSH_PULL | 2 | 表示從本端推送數據到遠端,然后從遠端拉取數據到本端。 |
審核編輯 黃宇
-
接口
+關注
關注
33文章
8150瀏覽量
149659 -
數據管理
+關注
關注
1文章
276瀏覽量
19528 -
分布式
+關注
關注
1文章
809瀏覽量
74361 -
鴻蒙
+關注
關注
56文章
2261瀏覽量
42428
發布評論請先 登錄
相關推薦
評論