如何索引和查询 Dexie.js 中的嵌套数组?

How can I index and query nested arrays in Dexie.js?

可以使用 MultiEntry indexes say any Indexable Type 的文档。

数组是可索引类型。因此应该可以索引数组的数组等等,对吧?

但是,我找不到任何示例或弄清楚如何查询这些。

基本上,我想要的是这样的:

var db = new Dexie('dbname');

db.version(1).stores({
  books: 'id, author, name, *properties'
});

db.books.put({
  id: 1,
  name: 'Human Action', 
  author: 'Ludwig von Mises',
  properties: [['language', 'english'], ['subject', 'philosophy'], ['subject', 'economics']]
});

然后可以找到一本有 economics 主题的书。

没错。 properties 数组中的每个条目都是一个包含两个字符串的数组 - 并且该内部数组本身是可索引的,并且可以充当可索引条目。

因此,要查找所有包含主题经济学的书籍,请执行

db.books.where({properties: ['subject', 'economics']}).toArray()

或等效形式:

db.books
  .where('properties')
  .equals(['subject', 'economics'])
  .toArray();