【发布时间】:2019-08-06 19:04:16
【问题描述】:
我将以下内容存储在 IndexedDB 中:
[
{
name: 'pizza',
ingredients: [ 'flour', 'water', 'yeast', 'salt', 'oil' ]
}, {
name: 'pasta',
ingredients: [ 'semolina', 'salt', 'water' ]
}, …
]
我在ingredients 上有一个multiEntry 索引:
store.createIndex('ingredientIdx', 'ingredients', { multiEntry: true });
现在,我想得到:
包含任何给定成分的膳食,例如
flour或water包含所有给定成分的膳食,例如
semolina、salt、和water
我的幼稚方法目前对每种给定成分执行多个查询,然后过滤和重复数据删除结果。但这感觉一点也不像“数据库”。
IndexedDB 是否支持某种“或”或“与”查询?这样做显然行不通:
const tx = db.transaction('meals');
const ingredientIdx = tx.objectStore('meals').index('ingredientsIdx');
const request = ingredientIdx.getAll([ 'flour' , 'water' ]);
// …
【问题讨论】:
标签: javascript indexeddb