gpt4 book ai didi

javascript - IndexedDB-Dexie JS : Dynamically create stores

转载 作者:行者123 更新时间:2023-11-29 16:11:21 24 4
gpt4 key购买 nike

我正在使用 indexedDB 进行本地数据存储,使用 Dexie.js 作为包装器非常好,特别是因为高级查询。实际上,我想通过脚本创建多个数据存储,这看起来很复杂。

要创建一个新商店,您可以执行以下操作:

db.version(2).stores({
Doctors: "++" + strFields
});

如果我执行类似 Doctors = "Hospital"的操作,它仍会创建名称为 "Doctors"的商店。

有办法吗?

有人遇到同样的问题吗?

最佳答案

假设您想要三个对象存储“医生”、“患者”和“医院”,您可以这样写:

var db = new Dexie ("your-database-name");
db.version(1).stores({
Doctors: "++id,name",
Patients: "ssn",
Hospitals: "++id,city"
});
db.open();

请注意,您只需指定主键和所需的索引。主键可以选择自动递增(“++”前缀)。您可以根据需要向对象添加任意数量的属性,而无需在索引列表中指定每个属性。

db.Doctors.add({name: "Phil", shoeSize: 83});
db.Patients.add({ssn: "721-07-446", name: "Randle Patrick McMurphy"});
db.Hospitals.add({name: "Johns Hopkins Hospital", city: "Baltimore"});

查询不同的商店:

db.Doctors.where('name').startsWithIgnoreCase("ph").each(function (doctor) {
alert ("Found doctor: " + doctor.name);
});

db.Hospitals.where('city').anyOf("Baltimore", "NYC").toArray(function (hospitals) {
alert ("Found hospitals: " + JSON.stringify(hospitals, null, 4));
});

关于javascript - IndexedDB-Dexie JS : Dynamically create stores,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26995810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com