- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
按照此处文档中的示例 http://dev.yathit.com/ydn-db/getting-started.html ,“排序”下的第一个示例。
我的代码:
var schema = {
stores: [
{
name: "authors",
keyPath: "id",
indexes: [
{ keyPath: "born" }
]
}
]
};
var db = new ydn.db.Storage("library", schema);
db.put("authors", [{ id: "111", born: "zzz" }, { id: "555", born: "bbb" }, { id: "999", born: "aaa" }]).done(function() {
// query with default ordering
db.values("authors").done(function(r) {
console.log("A list of objects as expected", r);
});
// query by ordered by "born" field
db.values(new ydn.db.Cursors("authors", "born", null, false)).done(function(r) {
console.log("This is a list of ids, not objects", r);
});
});
将查询从默认排序更改为按特定列排序似乎会将其行为从返回对象列表更改为仅返回 id 列表。难道我做错了什么?如何获取对象列表?
最佳答案
应该是
// query by ordered by "born" field
db.values(new ydn.db.IndexValueCursors("authors", "born", null, false)).done(function(r) {
console.log("list of objects sorted by born", r);
});
或
// query by ordered by "born" field
db.values("authors", "born", null, false).done(function(r) {
console.log("list of objects sorted by born", r);
});
或者简单地
db.values("authors", "born").done(function(r) {
console.log("list of objects sorted by born", r);
});
一个好的 API 应该非常容易地完成这些常见的查询,而无需阅读文档。我会想到更好的API。现在,您必须了解迭代器的工作原理:http://dev.yathit.com/api-reference/ydn-db/iterator.html ydn.db.Cursors
的引用值是主键。因此values
返回列表主键。而ydn.db.IndexValueCursors
的引用值为记录值,因此 values
返回对象列表。事实上,这就是 IndexedDB API 的工作原理。
另一点是上面两个查询具有不同的性能特征。第二种方法,直接查询比第一种方法(使用迭代器)更快。这是因为,迭代器将进行迭代,而第二种方法将使用批量查询。 websql 上的性能有很大不同,因为它不支持迭代。
关于javascript - 如何检索 ydn-db 中对象的排序列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19041873/
我正在尝试创建一个简单的函数,允许我搜索特定表中的特定项目并使用 YDN-DB 返回所需的结果,到目前为止我有这个: var simpleSearch = function(table,field,s
我在尝试使用 Ydn-db 检索大量数据时遇到问题。 问题是: -我有一个很大的 JSon 文件,我想将其存储在我的应用程序中以供离线使用 -我查询文件然后使用db.put成功保存数据 -然后,如果我
我想做一些类似于 SQL 的 DELETE FROM table1 的事情。有一个 remove 函数需要一个叫做 KeyRange 的东西,但我不确定如何创建一个代表“所有键”的 KeyRange
我尝试使用多个 deferred 与 jquery $.when 但到目前为止没有运气,这是我的代码: var req = $.when(db.count('items'),db.values('it
我正在尝试验证给定 ID 的表中是否存在特定记录。例如: var id = 23; db.count('products',id).done(function(count) { if(coun
我查看了此处发布的示例:YDN-DB with multiple deferred其中包含一些非常接近我想要的代码,但不完全是。 我想知道在事务中嵌套延迟查询是否安全?例如: loadWorkOrde
我正在尝试构建一个函数,用于在传递键路径之后检索商店中的下一个元素。我的 getItem 看起来像这样。 req = smartpigsdb.get(store, keypath); req.done
是否可以在YDN-DB中找到多个值(例如sql IN关键字)? //simple scenario "SELECT * FROM categories WHERE code IN ('
按照此处文档中的示例 http://dev.yathit.com/ydn-db/getting-started.html ,“排序”下的第一个示例。 我的代码: var schema = { st
我可以成功创建一个indexeddb数据库并将数据加载到其中。我还可以从同一页面读取该数据库中的数据。然后,我尝试从网站上的另一个页面读取数据库。 db = new ydn.db.Storage('t
我使用 YDN-DB 作为我的 indexeddb 包装器;我已经阅读了用户指南和 API,但完全不知道如何通过 ID(主键 [自动递增])更新记录。 有人熟悉这个/有什么想法吗? http://de
不确定是 ydn-db 中的错误还是我做错了什么。所以数据成功地保存在 ydn-db 和 db.values 的数据库中,我可以从数据库中获取所有数据。但是,当我只想从数据库中获取一个数据输入时,它在
我使用 Ydn-Db-Fulltext 允许用户在 HTML5 应用程序中搜索本地联系人数据库。到目前为止,当涉及到搜索人名时,它效果很好,很智能,并且可以立即返回结果。 以下是包含联系人方法数组的联
我正在使用 YDN DB for IndexedDB,并且我想使用其 ID 从对象存储中删除记录。这是我的架构: var personsSchema = { name: "persons", keyP
我可以在将记录添加到存储后验证它是否存在,但是当我在另一个函数中并声明一个新变量以指向同一个数据库并存储和执行查询时,我收到以下错误消息。 Store: null not exists. 我用来检索数
我正在尝试将 YDN 与 Backbone.sync() 结合使用,但我遇到了 « fetchAll » 函数的问题。 例如,我有这个 View var UserListView = Backbone
将 IndexedDB 用于本地 html5 应用程序,特别是 YDN-DB 包装器,我经常需要使用动态获取的商店名称来查询商店。当商店不存在时,我会出现错误,并且 javascript 执行会中止。
我是一名优秀的程序员,十分优秀!