如何限制文档中列表中的行?

时间:2012-02-14 15:09:06

标签: couchdb

我有一个类似的文件:

{"name":"Stock levels",
 "content":[
    {"sku":"328143",
     "name":"Battery",
     "stocklevel":"100",
     "warehouse":"london"},
    {"sku":"328143",
     "name":"Battery",
     "stocklevel":"20",
     "warehouse":"manchester"},
    {"sku":"328143",
     "name":"Battery",
     "stocklevel":"30",
     "warehouse":"brighton"}]}

列表“content”可能包含很多行。

我想要做的是返回一个内部行计数,并从列表中只返回一行。 e.g。

{"name":"Stock levels",
 "rows" : "2300",
 "content":[
    {"sku":"328143",
     "name":"Battery",
     "stocklevel":"100",
     "warehouse":"london"}]}

我如何在CouchDb中实现这一目标?我最初的想法是使用一个列表来有效地重建文档并插入额外的行字段并限制内部返回的行数,但我不确定这是否是最好的方法。

由于

1 个答案:

答案 0 :(得分:4)

您可以使用视图

以下示例允许您根据文档ID进行搜索 (作为关键发出)

function(doc)
{
  if (doc._id == "xxx")
  {
    emit(doc._id, {name:doc.name, rows:doc.content.length, content:doc.content[0]});
  } 
}