5

我正在使用getAll()方法从数据库中获取所有项目。

db.transaction('history', 'readonly').objectStore('history').getAll().onsuccess = ...

ObjectStore的定义为:

db.createObjectStore('history', { keyPath: 'id', autoIncrement: true });

我可以指望我得到的物品的订购吗?它们总是按主键排序id吗?
(或者有没有办法明确指定排序?)

我在官方文档中找不到有关订购的任何信息

4

1 回答 1

10

如果文档没有帮助,请查阅规范:

  1. getAll指的是“检索多个引用值的步骤”
  2. 检索步骤参考“索引中的第一次计数记录”
  3. 索引规范包含以下段落:

    索引中的记录始终根据记录的键进行排序。然而,与对象存储不同的是,给定的索引可以包含具有相同键的多条记录。此类记录还根据索引记录的值(即引用对象存储中记录的键)进行排序。

向后阅读:对索引进行排序。getAll检索索引的第一个 N,即它是保序的。因此结果本身应该保留排序顺序。

于 2017-02-01T08:37:00.333 回答