如何在 IndexedDB 中定义自定义对象(表)?

92vpleto  于 2022-12-16  发布在  IndexedDB
关注(0)|答案(1)|浏览(188)

我想在 IndexedDB 中定义自定义结构。如何在 IndexedDB 中定义文档结构?
让我们说:
我有一个人类

export class People {
    id : number
    name: string
    lists: LookUp[]

    constructor() { }
}

LookUp类是:

export class LookUp {
    id: number
    name: string

    constructor() { }
}

作为一个简单的结构,我将其定义如下:

const dbConfig: DBConfig = {
    name: 'MyDb',
    version: 1,
    objectStoresMeta: [{
        store: 'people',
        storeConfig: { keyPath: 'id', autoIncrement: true },
        storeSchema: [
            { name: 'name', keypath: 'name', options: { unique: false } }
        ]
    }]
};

现在我被列表定义(lists: LookUp[])困住了,我该如何定义列表呢?

yuvru6vn

yuvru6vn1#

我得到了解决它的线索。
定义如下:

const dbConfig: DBConfig = {
    name: 'MyDb',
    version: 1,
    objectStoresMeta: [{
        store: 'people',
        storeConfig: { keyPath: 'id', autoIncrement: true },
        storeSchema: [
            { name: 'name', keypath: 'name', options: { unique: false } },
            { name: 'lists', keypath: 'lists', options: { unique: false } }
        ]
    }]
};

并以如下方式添加数据:

this.dbService
      .bulkAdd('people', [
        {
          name: 'ABC',
          lists: [{
            id: 1,
            name: 'Harshad'
          },
          {
            id: 2,
            name: 'Nayan'
          }

          ]
        },
        {
          name: 'DEF',
          lists: [{
            id: 3,
            name: 'Gaurang'
          },
          {
            id: 4,
            name: 'Dharmik'
          }

          ]
        }
      ])
      .subscribe((result) => {
        console.log('result: ', result);
      });

它会解决我的问题。

相关问题