HarmonyOS 鸿蒙Next 键值型数据库 创建 kvStore 中 schema 有什么作用?
HarmonyOS 鸿蒙Next 键值型数据库 创建 kvStore 中 schema 有什么作用?
请教下 键值型数据库 创建 kvStore 时,这里携带了 schema,这里有什么作用?
let kvStore: distributedKVStore.SingleKVStore | undefined = undefined;
try {
let child1 = new distributedKVStore.FieldNode(‘id’);
child1.type = distributedKVStore.ValueType.INTEGER;
child1.nullable = false;
child1.default = ‘1’;
let child2 = new distributedKVStore.FieldNode(‘name’);
child2.type = distributedKVStore.ValueType.STRING;
child2.nullable = false;
child2.default = ‘zhangsan’;
let schema = new distributedKVStore.Schema();
schema.root.appendChild(child1);
schema.root.appendChild(child2);
schema.indexes = [’$.id’, ‘$.name’];
// 0表示COMPATIBLE模式,1表示STRICT模式。
schema.mode = 1;
// 支持在检查Value时,跳过skip指定的字节数,且取值范围为[0,4M-2]。
schema.skip = 0;
const options: distributedKVStore.Options = {
createIfMissing: true,
encrypt: false,
backup: false,
autoSync: false,
// kvStoreType不填时,默认创建多设备协同数据库
// 多设备协同数据库:kvStoreType: distributedKVStore.KVStoreType.DEVICE_COLLABORATION,
kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
// schema 可以不填,在需要使用schema功能时可以构造此参数,例如:使用谓词查询等。
schema: schema,
securityLevel: distributedKVStore.SecurityLevel.S1
};
kvManager.getKVStore<distributedKVStore.SingleKVStore>(‘storeId’, options, (err, store: distributedKVStore.SingleKVStore) => {
if (err) {
console.error(Failed to get KVStore: Code:${err.code},message:${err.message}
);
return;
}
console.info(‘Succeeded in getting KVStore.’);
kvStore = store;
// 请确保获取到键值数据库实例后,再进行相关数据操作
});
} catch (e) {
let error = e as BusinessError;
console.error(An unexpected error occurred. Code:${error.code},message:${error.message}
);
}
if (kvStore !== undefined) {
kvStore = kvStore as distributedKVStore.SingleKVStore;
// 进行后续相关数据操作,包括数据的增、删、改、查、订阅数据变化等操作
// …
}
更多关于HarmonyOS 鸿蒙Next 键值型数据库 创建 kvStore 中 schema 有什么作用?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next 键值型数据库 创建 kvStore 中 schema 有什么作用?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
Schema 是用来做逻辑上数据隔离吗?