couchbase视图按关键字部分进行查询

时间:2018-06-25 20:55:32

标签: javascript database view couchbase

我有一些包含消息的数据,包括:

mac
version
source
timestamp

我想知道上周多少个设备在哪个版本上。例如,

version 1.0: 20
version 2.1: 45
version 3.4: 3198

所以说我的观点如下:

map: function (doc, meta) {
  emit([doc.timestamp, doc.source, doc.mac, doc.version], 1);
}

我如何按Mac和版本分组?

我可以使用时间戳来控制正在查看的消息的范围。但是问题是我只关心设备的数量,而不关心消息的数量。包含时间戳的分组依据包括来自设备的每条消息,但是我只关心设备的数量及其版本,而不关注消息的数量。

1 个答案:

答案 0 :(得分:0)

我距离M / R专家还很远,但是可以做到这一点:

function (doc, meta) {
  emit([doc.version, doc.timestamp, doc.source, doc.mac], 1);
}

对于开始键:["0","2018-05-06"] 对于结束键:["Z","2018-05-13"]

这意味着,每个文档的版本介于0和Z之间(应该是所有),每个文档的时间戳都介于两个给定日期之间。

对于group_level:1(按版本分组)

要减少,请使用内置的_count

我用4个文档(1.0版中的2个和2.1版中的2个)对此进行了测试,它似乎可以正常工作:

enter image description here