我有以下格式存储的Couchbase通知文件:
{
"_id":"notification::5403cb1a6c965dcfe9",
"alert":"test data",
"body":{
"created_by":"user_54986e326694f10e511cf",
"description":" reported ",
},
"channels":[
"user_54986e326694f10e511cf",
"user_54986e326694f10e511cp"
],
"notification_type":"new_report",
"seen":true,
"timestamp":"2015-01-06T15:48:25.092Z",
"type":"notification"
}
JSON文档包含channels
数组,它是订阅频道的user_id
列表。问题是如果我将user_id
传递作为关键参数传递,则如果chaneel字段包含user_id ='user_54986e326694f10e511cf'
,我必须发出通知文档。
以下是我的Couchbase视图映射功能,但它不会返回任何内容
function (doc, meta) {
if(doc.type=='notification' && doc.channels){
for (var user in doc.channels) {
emit(user, {
alert: doc.alert,
body: doc.body,
seen: doc.seen,
timestamp: doc.timestamp
});
}
}
}
我想知道我在哪里做错了。
答案 0 :(得分:0)
那些"警告","身体","看到"您在字典中作为键发出的等等 - 是那些字符串?如果是的话,他们不应该被引用吗?
换句话说,试试这个:
function (doc, meta) {
if(doc.type=='notification' && doc.channels){
for (var user in doc.channels) {
emit(user, {
"alert": doc.alert,
"body": doc.body,
"seen": doc.seen,
"timestamp": doc.timestamp
});
}
}
}