我正在使用 Quasar 和 JavaScript 以及 Dexie 数据库。 我正在尝试仅从数据库中导出某些项目。
我的应用程序有包含试验的事件。我有一个事件表和一个试用表。 (还有更多的表,但现在就足够了)所有事件的数据库都变得非常大,所以我希望能够从试验表中导出带有相关试验信息的事件,以便可以存储它们。 然后最终删除这些事件和试验。
我正在使用以下内容:
import "dexie-export-import"
import { exportDB } from "dexie-export-import"
import download from 'downloadjs'
我有一个选择字段,允许用户选择要导出的事件。 然后我通过 exportDB 运行它并下载文件。这很好用:
const getStuffToExport = await exportDB(pawTapDB, {
prettyJson: true
filter: (table, value, key) => table === "trialTable",
})
download(getStuffToExport, "PawTapBackupFile.json", "application/json")
这将获取整个表格。 但我只想要包含所选事件的数据。 这是正在下载/导出的 JSON 文件的片段:
{
"tableName": "trialTable",
"inbound": true,
"rows": [
{
"fk_event": 1,
"trialNum": 1,
"trialDate": "2022-06-04",
"trialEventNumber": "2022745113",
"buried": {
"buriedNoviceOffered": true,
"buriedNoviceJudge": 3,
.....
我需要做的是进一步过滤它,以便我只获得具有我正在查找的 fk_event 的表条目。例如,我只想要 fk_event == 1 的表行。
这可能吗?
Dexie 中的过滤器函数有三个值:table、value、key。 我实际上不确定价值和关键是什么。 我在任何地方都找不到这样的例子。 显然,该表是表名。 我可以使用值或键来进一步减少我的选择吗? 谢谢
不仅检查表参数,还检查回调的值参数。它包含该对象。您可以检查诸如 fk_event 属性之类的内容。