在 couchDB 中,我有一组如下所示的项目(为了示例而简化):
{_id: 1, date: "Jul 1", user: "user1"}
{_id: 2, date: "Jul 2", user: "user1"}
{_id: 3, date: "Jul 3", user: "user2"}
...etc...
我想获得“最近活动”的列表,按日期排序,没有重复的用户 _ids。我可以创建一个具有如下结果的视图:
{key: "July 3", _id: 3, user: "user2"}
{key: "July 2", _id: 2, user: "user1"}
{key: "July 1", _id: 1, user: "user1"}
但这包含同一用户的重复条目。或者我可以创建一个映射 {key: user, value: date} 的视图并减少为
{key: "user1", mostRecentDate: "July 2"}
{key: "user2", mostRecentDate: "July 3"}
但这不是按“最新”排序的。
我知道不支持明显的解决方案 - 减少另一个视图的结果。BigCouch https://github.com/cloudant/bigcouch支持链式映射/归约,但似乎相当过时/不受支持(最后一个版本 2012 年)。
这似乎是一个相当常见的问题 - 有哪些现有的解决方案(除了“切换数据库”之外)?