Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过传递参数查询Couchbase视图_Javascript_Couchbase_Couchbase View - Fatal编程技术网

Javascript 通过传递参数查询Couchbase视图

Javascript 通过传递参数查询Couchbase视图,javascript,couchbase,couchbase-view,Javascript,Couchbase,Couchbase View,我有以下格式的Couchbase通知文档: { "_id":"notification::5403cb1a6c965dcfe9", "alert":"test data", "body":{ "created_by":"user_54986e326694f10e511cf", "description":" reported ", }, "channels":[ "user_54986e326694f10e

我有以下格式的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文档包含
频道
数组,它是订阅频道的
用户id
列表。问题是,如果通道字段包含
user\u id
,如果我将
user\u id='user\u 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
            });

        }

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

那些你在字典中作为键发出的“警报”、“身体”、“被看见”等,是那些字符串吗?如果是这样的话,它们不应该被引用吗

换句话说,请尝试以下方法:

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

我试过这个,但仍然得到{“total_rows”:225784,“rows”:[]}让我们把它分解成几部分。你应该首先确保你的函数运行良好——这意味着它会输出一些东西。只有在以后,您才应该使用查询来限制该输出。我建议您使用couchbase web UI查看视图的结果(而不是代码)。你从中得到了什么输出?应该有一个链接,可以在另一个选项卡中打开查看结果,并在默认情况下打印出10个结果。你们看到了什么?我使用的是couchbase web UI,当我运行这个查询时并没有任何键参数,它会给出结果,然后我使用结果集中的键并尝试再次运行,它会给出{“total_rows”:225784,“rows”:[]}你们能提供一个输出示例吗?从视图的结果中只剩下一两行?我没有使用任何键时的结果:-{“总计行”:220,“行”:[{“id”:“通知::53aef3f78cb80cdb602”,“键”:“0”,“值”:{“警报”:“smeagol在演示所有管理器中报告了“热”,“正文”:{“创建人”:“用户”52ca436db68ec76a33a26bc5”,“说明”:“报告”,“summary”:“hot”,“username”:“smel”},“channels”:[“user_53a06ba16694f16de1b9cb21],“seen”:false}}}}}当我使用键用户_53a06ba16694f16de1b9cb21时,结果:-{“total_rows”:225784,“rows”:[]}