我想知道是否可以使用通配符在indexeddb对象存储上执行搜索。
例如,找到所有键都以“555”开头的对象会很方便

最佳答案

可以使用复合键或键片段进行开箱即用。
键在IndexedDB中的工作方式是生成一个“keyRange”对象并将其传递给光标调用。键范围传递信息,例如“以A开头,以Z结束,包括Z点”。

从本质上讲,其中内置了部分匹配。缺点是您的光标将返回键之间的所有键,您可能需要进一步过滤掉这些结果。

假设您将这些词作为对象存储库中的键:

  • Aardvark
  • 苹果
  • Google
  • 微软

  • 键范围“A到Z,包括”将返回所有这些,而“Ap到Z,包括”将仅返回最后三个。

    我用来实现此目的的另一种技术是将“过滤器”函数传递给调用IndexedDB的方法。在方法onsuccess回调内部,将结果(event.target.result)通过您的过滤器函数传递,如果结果返回true,则调用方法调用者的onsuccess回调。

    关于javascript - Indexeddb:使用通配符搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9791219/

    10-12 13:51