【问题标题】:How to pass two parameter values to couchdb views?如何将两个参数值传递给 couchdb 视图?
【发布时间】:2011-08-10 04:03:31
【问题描述】:

我想在 CouchDB 视图中重现此 SQL。

SELECT name,department FROM Persons where id = ? and group_id = ? ;

如何在 CouchDB 中为此 SQL 编写视图和查询视图?

【问题讨论】:

  • 我写了 Cookbook 章节来回答这些问题:guide.couchdb.org/editions/1/en/cookbook.html希望这会有所帮助:)
  • @George 这是一个常见的问题,这个问题现在改写得很好,也许你可以考虑重新打开它
  • @SHernandez 接受的答案需要一些帮助;除了链接之外,它甚至没有任何信息。如果我正在做预期的事情,我会继续将该答案转换为评论;或删除它。

标签: sql couchdb language-comparisons


【解决方案1】:

你可以写一个像这样的视图:

function(doc) { 
  if (doc.person_id && doc.group_id) { 
    emit([doc.person_id, doc.group_id], {"name":doc.name,"department":doc.department});
  }
} 

我将您的 id 更改为 person_id,所以它不能轻易与 _id 混淆

我使用数组作为视图的键,因此您可以像这样轻松查询它:

http://127.0.0.1:5984/testdb/_design/designdoc/_view/testview?key=[12,3]

这或多或少类似于这个查询:

SELECT name, department FROM Persons where person_id = 12 and group_id = 3 ;

这是一篇关于使用视图进行过滤和排序的文章:http://barkingiguana.com/2009/01/22/filtering-and-ordering-couchdb-view-results/

couchdb wiki 中有一个非常好的页面:http://wiki.apache.org/couchdb/HTTP_view_API

couchdb 指南中的这一章解释了数组键:http://guide.couchdb.org/draft/views.html

【讨论】:

  • @JanLehnardt 您的其他 cmets 不知何故迷路了。也许您或其他人想要稍微改进一下,只需点击编辑
  • 你是救生员。多年来一直在寻找这个。 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
相关资源
最近更新 更多