将此mysql转换为couchdb视图?
我是couchdb的新手,我想基于一个简单的mysql语句创建一个视图。 我找到了这个文档:但遗憾的是,并没有包括所有用例 我的MySQL声明:将此mysql转换为couchdb视图?,mysql,view,couchdb,translate,Mysql,View,Couchdb,Translate,我是couchdb的新手,我想基于一个简单的mysql语句创建一个视图。 我找到了这个文档:但遗憾的是,并没有包括所有用例 我的MySQL声明: SELECT `title`, `id`, `author`, `date`, `text` FROM `news` WHERE `date`<=NOW() AND `author`='22' ORDER BY `date` DESC LIMIT 20,10; 从`news`中选择`title`、`id`、`author`、`date`、`te
SELECT `title`, `id`, `author`, `date`, `text` FROM `news` WHERE `date`<=NOW() AND `author`='22' ORDER BY `date` DESC LIMIT 20,10;
从`news`中选择`title`、`id`、`author`、`date`、`text`,其中`date`您需要使用以下映射函数编写视图
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中的视图只是按键排序的键值对列表,它提供了访问该列表范围的方法。您需要设计视图,以便使用范围查询获得所需的结果。您需要使用以下映射函数编写视图
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中的视图只是按键排序的键值对列表,它提供了访问该列表范围的方法。您需要设计视图,以便使用范围查询获得所需的结果。有趣的一点是,您实现了限制20
,而不是限制20,10
。感谢您的回答,但是如何能够在限制处进行此偏移?您不能(至少性能不合理)。heuri,你可以通过skip=20
。更正了我回复中的url。有趣的是,您实现了限制20
,而不是限制20,10
。感谢您的回复,但是如何能够在限制处进行此偏移?您不能(至少,性能不合理)。heuri,你可以通过skip=20
。更正了我回复中的url。