我需要通过查看具有多个键的视图来从CouchDB获取文档,例如keys=["key1", "key2","key3"]
。
文件看起来像这样:
{
"_id": "142410131701",
"_rev": "1-6cac8838a4dfc2308f9d06001a899f50",
"s": [
"key1", "key2", "key3"
]
}
这很好用。 我面临的问题是如何在数据库中获取最新的文档?我的文档_id实际上是一个Unix Epoch,但我无法弄清楚如何通过id排序结果。 看起来CouchDB返回btree中匹配key1的第一个结果,然后返回匹配key2等的结果,但最新的文档不是第一个返回的结果。 尝试将_id添加到键也不起作用。
我现在用List函数解决了这个问题,它通过_id对结果进行排序,但我想知道是否有更简单有效的解决方案。 提前谢谢!
答案 0 :(得分:0)
如果你将_id
添加到它必须工作的键(当然,你必须将它添加为键数组的第一个参数,这显然会使这个视图在你的情况下无用)
但是,如果你想要一个已经按_id
索引文档的自动视图并对它们进行排序,在你的情况下,从旧版本到更新版本,它是_all_docs
端点,就像一个视图一样工作
您的问题的答案是:
curl http://couch.db.com/database/_all_docs?descending=true&include_docs=true&limit=15
这将为您提供15个最新的文档,其响应或多或少如下:
{
"rows": [
{
"key": "the-id",
"id": "the-id",
"value": {"rev": "the-rev"},
"doc": {
"your-document": "goes here"
}
},
...
]
}