将此 mysql 转换为 couchdb 视图?

发布于 2024-10-01 14:00:06 字数 384 浏览 2 评论 0原文

我对 couchdb 很陌生,我想基于简单的 mysql 语句创建一个视图。 我找到了这个文档: http://guide.couchdb.org/draft/cookbook.html 但遗憾的是并未包含所有用例。

我的 MySQL 声明:

SELECT `title`, `id`, `author`, `date`, `text` FROM `news` WHERE `date`<=NOW() AND `author`='22' ORDER BY `date` DESC LIMIT 20,10;

非常感谢!

I'm quite new with couchdb and I want to create a view based on a simple mysql statement.
I found this documentation: http://guide.couchdb.org/draft/cookbook.html but there are sadly not all use cases included.

My MySQL-Statement:

SELECT `title`, `id`, `author`, `date`, `text` FROM `news` WHERE `date`<=NOW() AND `author`='22' ORDER BY `date` DESC LIMIT 20,10;

Thank you very much!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

开始看清了 2024-10-08 14:00:07

您需要使用以下地图函数编写一个视图。

function(doc) {
    emit([doc.author, doc.date], {
            "title": doc.title, 
            "author": doc.author, 
            "date": doc.date, 
            "text": doc.text});
}

现在您可以使用以下 URL 查询视图:

http://127.0.0.1:5984/dbname/_design/design_doc_name/_view/viewname?startkey=[22, "2010-11-12T10:20:30"]&endkey=[22, {}]&descending=true&skip=20&limit=10

开始键中的日期必须是当前日期时间。无法在 couchdb 中模拟 NOW()。

couchdb 中的视图只是按键排序的键值对列表,它提供了一种访问该列表范围的方法。您需要设计视图,以便可以使用范围查询获得所需的结果。

You need to write a view with the following map function.

function(doc) {
    emit([doc.author, doc.date], {
            "title": doc.title, 
            "author": doc.author, 
            "date": doc.date, 
            "text": doc.text});
}

Now you can query the view using the following URL:

http://127.0.0.1:5984/dbname/_design/design_doc_name/_view/viewname?startkey=[22, "2010-11-12T10:20:30"]&endkey=[22, {}]&descending=true&skip=20&limit=10

The date in the start key must be the current datetime. There is no way to emulate NOW() in couchdb.

A view in couchdb is just a list of key-value pairs sorted by key and it provides a way to access a range of that list. You need to design your view such that you can get the results that you need using a range query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文