如何使用 dexie 在 indexedDB 中保存对象,其中 1 个字段是对象数组?

How save object in indexed DB wth dexie where 1 of the fields is array of objects?

我有索引数据库的下一个配置

import Dexie from 'dexie';

const db = new Dexie("dbName");
db.version(1).stores(
    {users: '++id, name,company,confirmPassword,email,password,*permissions'}
);

const saveClient = async (client) => {
  return await db.users.add(client);
};

export {
  saveClient
};

其中权限是对象数组

 {
  name: 'Alex',
  company: 'Company',
  password: 'Password',
  confirmPassword: 'Password',
  permissions : [{id:1}, {id:2}] //permisions
 }

我是否应该描述此字段的特殊方式以将新对象添加到存储中?

您可以在 indexedDB 中存储任何结构,包括对象数组,而无需在索引中对其进行描述。索引应仅列出您要在查询中使用的属性。

索引可以是普通索引或多条目索引。普通索引对 属性 本身起作用,而多条目索引对数组中的每个条目起作用。但是,这些条目必须是普通值而不是对象 - 因为对象本身不可索引。

因此,如果您的目的是查询具有 id = X 权限的所有用户,则需要将每个权限存储为普通 ID 号 ([1, 2, ...]) 而不是对象[{id: 1},{id: 2}, ...].