Couchbase View _count 减少给定键
Couchbase View _count Reduce For Given Keys
我正在尝试使用诸如 _count 之类的 reduce 在 Couchbase 中编写一个视图,它将给我一个地址处的产品计数。
我在数据库中有一些文档,格式如下;
文档 1
{
id: 1,
address: {
street: 'W Churchill St'
city: 'Chicago',
state: 'IL',
},
product: 'Cable'
}
文档 2
{
id: 2,
address: {
street: 'W Churchill St'
city: 'Chicago',
state: 'IL',
},
product: 'Cable'
}
文档 3
{
id: 3,
address: {
street: 'W Churchill St'
city: 'Chicago',
state: 'IL',
},
product: 'Satellite'
}
文件 4
{
id: 4,
address: {
street: 'E Foster Rd'
city: 'New York',
state: 'NY',
},
product: 'Free To Air'
}
我已经有了一个视图,它为我提供了一个使用复合键的地址的所有产品,例如;
emit([doc.address.street, doc.address.city, doc.address.state], null)
现在这让我进入了实际问题,我希望能够计算一个或多个地址的产品数量。
我希望能够看到 "keys"
的数组
['W Churchill St','Chicago','IL']
['E Foster Rd','New York','NY']
哪些产品及其数量。所以我希望在我的结果中看到。
'Cable' : 2,
'Satellite': 1,
'Free To Air': 1
但是,如果我只指定了这个 "key",
['W Churchill St','Chicago','IL']
我希望看到
'Cable' : 2,
'Satellite': 1
如何编写我的视图以适应这种情况?
解决方法是像这样将我的产品附加到密钥上;
emit([doc.address.street, doc.address.city, doc.address.state, doc.product], null)
然后使用;
?start_key=[street,city,state]&end_key=[street,city,state,{}]&group_level=4
结果:
{"rows":[
{"key":['W Churchill St','Chicago','IL','Cable'], "value":2},
{"key":['W Churchill St','Chicago','IL','Satellite'], "value":1}
]}
然后我需要对每个地址重复此查询并对结果求和。
我正在尝试使用诸如 _count 之类的 reduce 在 Couchbase 中编写一个视图,它将给我一个地址处的产品计数。
我在数据库中有一些文档,格式如下;
文档 1
{
id: 1,
address: {
street: 'W Churchill St'
city: 'Chicago',
state: 'IL',
},
product: 'Cable'
}
文档 2
{
id: 2,
address: {
street: 'W Churchill St'
city: 'Chicago',
state: 'IL',
},
product: 'Cable'
}
文档 3
{
id: 3,
address: {
street: 'W Churchill St'
city: 'Chicago',
state: 'IL',
},
product: 'Satellite'
}
文件 4
{
id: 4,
address: {
street: 'E Foster Rd'
city: 'New York',
state: 'NY',
},
product: 'Free To Air'
}
我已经有了一个视图,它为我提供了一个使用复合键的地址的所有产品,例如;
emit([doc.address.street, doc.address.city, doc.address.state], null)
现在这让我进入了实际问题,我希望能够计算一个或多个地址的产品数量。
我希望能够看到 "keys"
的数组['W Churchill St','Chicago','IL']
['E Foster Rd','New York','NY']
哪些产品及其数量。所以我希望在我的结果中看到。
'Cable' : 2,
'Satellite': 1,
'Free To Air': 1
但是,如果我只指定了这个 "key",
['W Churchill St','Chicago','IL']
我希望看到
'Cable' : 2,
'Satellite': 1
如何编写我的视图以适应这种情况?
解决方法是像这样将我的产品附加到密钥上;
emit([doc.address.street, doc.address.city, doc.address.state, doc.product], null)
然后使用;
?start_key=[street,city,state]&end_key=[street,city,state,{}]&group_level=4
结果:
{"rows":[
{"key":['W Churchill St','Chicago','IL','Cable'], "value":2},
{"key":['W Churchill St','Chicago','IL','Satellite'], "value":1}
]}
然后我需要对每个地址重复此查询并对结果求和。