我在 CouchDB 中有一些带有 timestamp
字段和 group
字段的项目。我使用此 View 函数来获取 group == "foo"的所有项目的列表:
{
"map" : "function(doc) { emit(doc.group, doc); }"
}
http://localhost:5984/my_database/_temp_view?key="foo"
现在我想让输出按 timestamp
字段排序。我怎么做?基本上,我想要与此 SQL 查询等效的内容:
从某个表中选择*,其中组=?按时间戳排序
最佳答案
将时间戳作为第二列发出:
function(doc) { emit([doc.group,doc.timestamp]); }
然后,使用以下参数进行查询:
view?startkey=["foo"]&endkey=["foo",""]
我假设您的时间戳是数字,而不是字符串。阅读 this了解数字时间戳如何在 ["foo"]
和 ["foo",""]
之间排序。
此外,不要发出 doc
作为值,它会占用大量存储空间。如果您确实需要该文档,请在查询中使用 include_docs=true
。
关于javascript - CouchDB 中的过滤和排序 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390583/