gpt4 book ai didi

couchdb,获取最后 10 个文件

转载 作者:行者123 更新时间:2023-12-04 16:55:29 25 4
gpt4 key购买 nike

使用 mysql 这将是:

SELECT * FROM thetable ORDER BY id DESC LIMIT 10

如何在 couchdb 中为所有带有“type”:“message”的文档执行此操作? (不拉取所有类型为:消息的文档)

谢谢

最佳答案

创建一个发出所有文档 ID 的 View 。 View 键将用于自动排序。

function(doc) {
if(doc.type && doc.type === 'message'){
emit(doc._id, null);
}
}

然后执行查询: http://host/yourdb/_design/yourdesigndoc/_view/viewname?limit=10&include_docs=true&descending=true

因为您需要完整的文档,所以我们没有在 View 中包含任何值。相反,我们添加 include_docs=true获取 View 条目的每个完整文档。

请注意,还有一个执行相同操作的内置 View : http://host/yourdb/_all_docs?limit=10&include_docs=true&descending=true

PS:您应该知道 CouchDB 默认使用 UUID 作为 ID,如果您真的想获得最新的文档,这会使排序或多或少无用。要么提供您自己的增量 ID(分发/复制呢?)或使用一个新字段来存储文档的创建时间并在 View 中使用。

如果您的文档有 created字段(即 UNIX 时间戳、JavaScript Date.now() 甚至类似 RFC 3339 的字符串),您可以在这些值上构建索引。

这是基于时间的 View :
function(doc) {
if(doc.type && doc.type === 'message' && doc.created){
emit(doc.created, null);
}
}

请注意,我们不会发出 doc._id 本身。但是,CouchDB 存储了 doc._id每个发出的键/值对的数据自动来自哪里,所以我们可以再次使用 include_docs=true获取完整的文档。

查询 http://host/yourdb/_design/yourdesigndoc/_view/viewname?limit=10&include_docs=true&descending=true

关于couchdb,获取最后 10 个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7037527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com