我想将我的 dexie 值更改为空字符串
Posted
技术标签:
【中文标题】我想将我的 dexie 值更改为空字符串【英文标题】:I want to change my dexie values which are null to empty strings 【发布时间】:2021-12-12 12:15:52 【问题描述】:我想将我的数据表值更改为空字符串。
有时部门值会为空,在这种情况下,它会将 null 放入我的数据表中。
db = db_open();
db.fuel.toArray().then(fuel =>
fuel.forEach(function(fuel)
$('#table_bod').append('<tr> <td>'+fuel.department+'</td> </tr> ');
)
);
我试过了:
const fuels = db.fuel.where(department: null);
但这似乎不起作用。
【问题讨论】:
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:IndexedDB 无法与 null 匹配,因此您必须进行全表扫描才能找到它们。
const fuelsWithoutDepartment = await db.fuel
.filter(x => x.department === null)
.toArray();
创建一个升级程序,将所有 null 部门修改为空字符串,以防你想要它而不是 null。
db.version(2).stores(
fuel: 'id, department'
).upgrade (tx =>
return tx.fuel.filter(
x => x.department === null
).modify(department: "");
);
一旦您声明了这样的升级程序(请根据您的情况将其调整为适当的版本、ID 和索引),那么您将不再需要全表扫描来查找没有部门的燃料,但可以使用部门索引(如果你有的话):
const fuelsWithoutDepartment = await db.fuel
.where(department: "")
.toArray();
【讨论】:
我发现这对于将新数据直接添加到 dexieDB 而不是从 mysql 时非常有用,因此当添加数据时我的**现在声明的更新程序确保我的 dexie 数据库中没有 null * * .谢谢你以上是关于我想将我的 dexie 值更改为空字符串的主要内容,如果未能解决你的问题,请参考以下文章
你能把 null 的本地 dexie DB 值更改为一个没有值的字符串吗