【问题标题】:Dexie's Table.orderBy for Uint32Array orders as if it was Uint8ArrayDexie 的 Uint32Array 订单的 Table.orderBy 就好像它是 Uint8Array
【发布时间】:2018-08-24 14:27:57
【问题描述】:

自 Unix 纪元以来,我存储的对象有一个以秒为单位的时间戳。我希望能够将它存储为 Uint32Array,然后按时间戳排序检索它。

我使用 Dexie 的 Table.orderBy 来检索它。顺序不正确,经过一番调查,我注意到顺序就像您将 Uint32Array 转换为 Uint8Array。

请参阅这个小提琴示例,了解它如何无法按 Uint32 排序并按 Uint8 排序:

https://fiddle.jshell.net/3tf5r0cu/708/

我是否做出了错误的假设,还是 Dexie 中的缺陷还是 IndexedDb 中的缺陷?

我在 Chromium 中使用 Dexie 2.0.1。

【问题讨论】:

    标签: indexeddb arraybuffer dexie


    【解决方案1】:

    实际上是根据 indexedDB 2.0 规范。所有二进制键(任何 ArrayBufferView)均等排序(作为字节数组)。您可能应该改用数字或日期。

    【讨论】:

    • 谢谢。我在没有注册的情况下阅读了它,但我认为您指的是规范中的这一条款:二进制密钥的成员被比较为无符号八位字节值(在 [0, 255] 范围内)而不是有符号字节值(在 [-128, 127] 范围内)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 2021-06-27
    相关资源
    最近更新 更多