【问题标题】:dexie to use filter while exporting and importing (dexie-export-import)dexie 在导出和导入时使用过滤器 (dexie-export-import)
【发布时间】:2020-06-22 05:32:38
【问题描述】:

我在 dexie 数据库中有两个表,我正在尝试使用 dexie-export-import 仅导出-导入其中一个。
官方dexie文档说你有filter作为可选参数

//Optional filter allows to import/export subset of data
export interface ExportOptions {
  noTransaction?: boolean;
  numRowsPerChunk?: number;
  prettyJson?: boolean;
  filter?: (table: string, value: any, key?: any) => boolean;
  progressCallback?: (progress: ExportProgress) => boolean;
}

谁能告诉我如何使用该过滤器参数...

database.export({prettyJson: true, filter: (table: 'A', value: '', key: '') => true});

【问题讨论】:

    标签: node.js indexeddb dexie


    【解决方案1】:
    import {exportDB} from "dexie-export-import";
    
    function exportSingleTable(db, tableName) {
      return exportDB(db, {filter: (table, value, key) => table === tableName});
    }
    
    exportSingleTable(yourDexieInstance, "yourTableNameToExport").then(blob => {
      alert("done");
      // Result is in blob
    }).catch(error => {
      alert("error: " + error);
    });
    

    【讨论】:

    • 您好另外的问题,我如何过滤值和键。 function exportSingleTable(db, tableName, theKey, theVal) { return exportDB(db, {filter: (table, value, key) => table === tableName && value === theVal && key === theKey});没有使用过滤器:( }
    【解决方案2】:

    答案的更简化版本:

    导出

    const blob = await database.export({prettyJson: true, filter: (table, value, key) => table === 'YOUR_TABLE_NAME'});
    

    导入

    await database.import(blob, {prettyJson: true, filter: (table, value, key) => table === 'YOUR_TABLE_NAME'});
    

    【讨论】:

      猜你喜欢
      • 2019-09-01
      • 2018-11-01
      • 2021-05-20
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 2022-07-18
      相关资源
      最近更新 更多