假设我有以下格式的CouchDB文档:
...
{
player: 'abcde',
action: 'run'
},
{
player: 'abcde',
action: 'jump'
},
{
player: 'abcde',
action: 'left'
},
{
player: 'abcde',
action: 'right'
},
....
我的
view
看起来像这样:function(doc) {
emit(doc.player, doc.action)
}
如何计算玩家
abcde
在执行jump
之后立即执行run
动作的次数?我不希望jumps
和runs
的总数。甚至可以从previous
或next
函数中的当前文档访问map
或reduce
文档?谢谢!
最佳答案
不,您不能像这样访问地图/缩小中的其他文档。对于初学者,我认为降序没有明确定义,因此恐怕“上一个”和“下一个”甚至都没有真正的意义。
相反,我建议您将每个玩家动作的全部历史记录合并到一个文档中,例如:
{
"player": "abcde",
"actions" : [ "right", "run", "jump" ]
}
然后,您可以仅在map方法中从数组中计数特定的一组有序操作,并在reduce中根据需要轻松汇总它们。