使用 Dexie,我能否获取 table 中的所有对象,其中数组字段具有特定值作为其元素之一?

With Dexie, can I get all objects in a table where an array field has a specific value as one of its elements?

我有一个 table,其中每个对象都有一个字符串数组字段:例如,{ people: ['John', 'Bob', 'Sue'] }。我需要 table 中 people 数组中具有 'Sue' 的所有对象。

德克西能做到吗?

是的,使用 MultiEntry 索引你可以做到这一点。

const db = new Dexie("testdb");
db.version(2).stores({
  groups: 'id, *people'
});

async function addRow() {
  await db.groups.add({id: 1, people: ['John', 'Bob', 'Sue']});
}

async function findSuesGroups() (
  return await db.groups.where('people').equals('Sue').toArray();
}

查看 https://dexie.org/docs/MultiEntry-Index

中的其他示例