sco*_*tes 7 couchdb mapreduce views
根据我之前的问题的一个很好的答案,我已经部分解决了我与CouchDB的问题.
这导致了一种新观点.
现在,我需要做的下一件事是在按日期排序时从此视图中删除重复项.
例如,以下是我查询该视图的方式:
GET http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following?endkey=[%22c988a29740241c7d20fc7974be05ec54%22]&startkey=[%22c988a29740241c7d20fc7974be05ec54%22,{}]&descending=true&limit=3
Run Code Online (Sandbox Code Playgroud)
结果如下:
HTTP 200 http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following
http://scoates-test.couchone.com > $_.json.rows
[ { id: 'c988a29740241c7d20fc7974be067295'
, key:
[ 'c988a29740241c7d20fc7974be05ec54'
, '2010-11-26T17:00:00.000Z'
, 'clementine'
]
, value:
{ _id: 'c988a29740241c7d20fc7974be062ee8'
, owner: 'c988a29740241c7d20fc7974be05f67d'
}
}
, { id: 'c988a29740241c7d20fc7974be068278'
, key:
[ 'c988a29740241c7d20fc7974be05ec54'
, '2010-11-26T15:00:00.000Z'
, 'durian'
]
, value:
{ _id: 'c988a29740241c7d20fc7974be065115'
, owner: 'c988a29740241c7d20fc7974be060bb4'
}
}
, { id: 'c988a29740241c7d20fc7974be068026'
, key:
[ 'c988a29740241c7d20fc7974be05ec54'
, '2010-11-26T14:00:00.000Z'
, 'clementine'
]
, value:
{ _id: 'c988a29740241c7d20fc7974be063b6d'
, owner: 'c988a29740241c7d20fc7974be05ff71'
}
}
]
Run Code Online (Sandbox Code Playgroud)
如你所见,"克莱门汀"出现了两次.
如果我更改视图以将水果/资产名称作为第二个键(而不是时间)发出,我可以更改分组深度以折叠这些,但这并不能解决我的按时间顺序要求.类似地,通过上面的设置,我可以按时间排序,但我不能将重复的资产名称折叠成单行(例如,允许每页10个资产).
不幸的是,这不是一个简单的问题需要解释.也许这个聊天记录会有所帮助.
请帮忙.我担心我需要做的事情仍然是不可能的.
小号
您可以使用列表功能执行此操作.下面是一个生成一个非常简单的列表的示例,其中包含所有没有dupes的所有者字段.您可以轻松地修改它以生成json或xml或任何您想要的东西.
将它放入lists.nodupes中的资产设计文档中并使用如下: http:// admin:123@127.0.0.1:5984/follow/_design/assets/_list/nodupes/by_userid_following_reduce?group = true
function(head, req) {
start({
"headers": {
"Content-Type": "text/html"
}
});
var row;
var dupes = [];
while(row = getRow()) {
if (dupes.indexOf(row.key[2]) == -1) {
dupes.push(row.key[2]);
send(row.value[0].owner+"<br>");
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4522 次 |
| 最近记录: |