是否有一个内置的方式来获得所有的记录,这是不同于某些值在indexed-db。
在SQL中,这类似于SELECT * FROM table WHERE field1 <> 'somedata';
我看到了一个内置的IDBKeyRange.only()方法,但是我没有看到返回差异的方法。(或者我没有看到简单的方法)
是的,我知道如果我们迭代记录,我们可以做到这一点。我说的是快速构建的方式来执行这一点。
不幸的是,方法IDBKeyRange.bound(value, value, true, true)
返回错误,但这正是所需要的
1条答案
按热度按时间7y4bm7vi1#
IDBKeyRange.bound(value, value, true, true)
是一个错误,因为它是一个不可能的区间--没有键同时高于value和低于value。但是你可以使用 * 两个 * 范围:
IDBKeyRange.upperBound(value, true)
提供从store/index的开始到value(但不包括value)的所有记录。IDBKeyRange.lowerBound(value, true)
提供从value(但不包括value)到store/index的结束的所有记录。如果您知道记录的数量相对较少,则可以将其与
getAll()
方法一起使用,否则迭代是最好的方法。(We我已经讨论过添加更复杂的查询,这样你就可以做一个“范围集”,而不是必须查询两个范围,但这还没有在任何实现中体现出来。