通过传递参数查询Couchbase视图

时间:2015-09-02 12:31:34

标签: javascript couchbase couchbase-view

我有以下格式存储的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
            });

        }

    }
}

我想知道我在哪里做错了。

1 个答案:

答案 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
            });
        }
    }
}