0

我正在使用 WinJS 和 IndexDB 来支持我正在编写的 Metro 应用程序。我需要维护 2 个信息列表。如果我可以过滤一个字段,但我找不到支持从 IndexDB 过滤的方法,我可以使用相同的数据库并为两个列表存储相同的对象。

由于那没有用,所以我想我只使用 2 个 IndexDB。我的 Metro 应用程序只是抛出了一个异常,没有其他详细信息表明错误 2。

我可以在 Metro 应用程序的一页中使用多个 IndexDB 吗?

是否可以使用 IndexDB 进行过滤?

甚至 IndexDB 的结果似乎也被隐藏了,因为在获得所有结果后我什至无法手动过滤。

4

2 回答 2

1

取决于您所说的多个 indexedDB 的含义——您不能打开多个数据库实例,但您可以多次查询数据库,并获取多个数据集。数据库将返回记录的完整对象。

另外,您要进行哪种过滤?

请注意,indexedDB 没有用于基于过滤器进行选择的直接查询语言。你有几个选择:

  • 在对象存储上使用索引,并将其用于“精确”匹配(例如图像类型或其他)
  • 从数据库结果返回时过滤内容,仅将其返回给其他内容。

在https://github.com/grork/db.js有一个很好的 Aaron Powells db.js 的分支,它提供了一个很好的 WinJS 承诺兼容 API。

于 2012-07-26T18:21:51.480 回答
1

我已经看到这个问题已经得到解答,但我想指出,我正忙于围绕 indexeddb 编写一个支持查询的库。即使是 indexeddb API 无法实现的过滤器也可以在我的库中解决。

仅供参考看看这个链接。它也与 WinJS 兼容,并且每件事都包含在 Promise 中。

于 2012-08-07T05:47:03.263 回答