通过传递参数查询 couchbase
Querying couchbase by passing parameter
我正在以以下格式存储 couchbase 报告文档:
{
"agree_allowed":true,
"assigned_by":"",
"assigned_to":"",
"closed":[
],
"comments_allowed":true,
"details":"Test",
"email":"",
"status":"In Progress",
"subscribed":{
"user_cfd29b81f0263a380507":true,
"user_cfd29b81f0263a380508":true,
"user_cfd29b81f0263a380509":true,
"user_cfd29b81f0263a3805010":true
},
"summary":"Test",
"time_open":0,
"timestamp":"2015-07-17T15:34:30.864Z",
"type":"report",
"user_id":"user_cfd29b81f0263a380507",
"username":"test17"
}
json 包含订阅的字段,它是 user_id 关注报告的列表。
问题是如果订阅字段包含 user_id,如果我将 user_id ='user_cfd29b81f0263a380507' 作为关键参数传递,我必须发出报告文档。我想知道如何使用 user_id 在 view
中进行比较
这是我写的代码:-
function map(doc, meta) {
if (doc.type == 'report' && doc.subscribed) {
for (var user_id in doc.subscribed) {
emit(doc.user_id, doc);
}
}
}
但未达到 return 预期结果。
谁能帮忙
如果我理解你的问题,我认为你希望能够查询已订阅的用户。
如果是这种情况,视图代码是错误的,它提交的是 doc.user_id
而不是 user_id
,这是您在循环中赋值但从未使用过的变量。无论如何,我认为最好使用不同的名称以避免混淆。
function map(doc, meta) {
if (doc.type == 'report' && doc.subscribed) {
for (var subscriber in doc.subscribed) {
emit(subscriber);
}
}
}
要查询已订阅您的用户,请使用 key=user_cfd29b81f0263a380507
。结果将是:
{
"total_rows": 4,
"rows": [
{
"id": "docs",
"key": "user_cfd29b81f0263a380507",
"value": null
}
]
}
我正在以以下格式存储 couchbase 报告文档:
{
"agree_allowed":true,
"assigned_by":"",
"assigned_to":"",
"closed":[
],
"comments_allowed":true,
"details":"Test",
"email":"",
"status":"In Progress",
"subscribed":{
"user_cfd29b81f0263a380507":true,
"user_cfd29b81f0263a380508":true,
"user_cfd29b81f0263a380509":true,
"user_cfd29b81f0263a3805010":true
},
"summary":"Test",
"time_open":0,
"timestamp":"2015-07-17T15:34:30.864Z",
"type":"report",
"user_id":"user_cfd29b81f0263a380507",
"username":"test17"
}
json 包含订阅的字段,它是 user_id 关注报告的列表。 问题是如果订阅字段包含 user_id,如果我将 user_id ='user_cfd29b81f0263a380507' 作为关键参数传递,我必须发出报告文档。我想知道如何使用 user_id 在 view
中进行比较这是我写的代码:-
function map(doc, meta) {
if (doc.type == 'report' && doc.subscribed) {
for (var user_id in doc.subscribed) {
emit(doc.user_id, doc);
}
}
}
但未达到 return 预期结果。 谁能帮忙
如果我理解你的问题,我认为你希望能够查询已订阅的用户。
如果是这种情况,视图代码是错误的,它提交的是 doc.user_id
而不是 user_id
,这是您在循环中赋值但从未使用过的变量。无论如何,我认为最好使用不同的名称以避免混淆。
function map(doc, meta) {
if (doc.type == 'report' && doc.subscribed) {
for (var subscriber in doc.subscribed) {
emit(subscriber);
}
}
}
要查询已订阅您的用户,请使用 key=user_cfd29b81f0263a380507
。结果将是:
{
"total_rows": 4,
"rows": [
{
"id": "docs",
"key": "user_cfd29b81f0263a380507",
"value": null
}
]
}