使用 python 查询 couchbase 视图时没有返回行
No row returned when querying a couchbase view with python
我正在尝试从 python sdk 查询视图,但没有返回任何行。
我的地图函数是:
function (doc, meta) {
if (doc.EXENUM_A !== null)
{
if (doc.PRS != null) {
emit(doc.EXENUM_A, doc.PRS);
}
}
}
减少一个是:
function (keys, values) {
for (k in keys) {
result = {};
for (v in values) {
if (!(values[v] in result)) {
result[values[v]] = 0;
}
result[values[v]] += 1;
}
return [keys[k], result];
}
}
当我在 couchbase webui 中执行这个查询时,我得到了预期的结果。
但是当我尝试从 python 查询它时,我得到一个空的结果集:
from couchbase.bucket import Bucket
from couchbase.views.iterator import View
import os
import fnmatch
cb=Bucket('couchbase://172.17.0.2:8091/my_db', password="my_password")
view = View(cb, "dev_testview", "by_num", limit=10,reduce=True)
for row in view:
print(row.key)
我是不是漏掉了什么?
这个观点还是dev_view。在我可以从 python 查询它之前,我是否必须在生产环境中发布它?
我找到了答案。它来自我必须添加的参数
view = View(cb, "dev_testview", "by_num", limit=10, reduce=True, group=True, inclusive_end=False)
我正在尝试从 python sdk 查询视图,但没有返回任何行。
我的地图函数是:
function (doc, meta) {
if (doc.EXENUM_A !== null)
{
if (doc.PRS != null) {
emit(doc.EXENUM_A, doc.PRS);
}
}
}
减少一个是:
function (keys, values) {
for (k in keys) {
result = {};
for (v in values) {
if (!(values[v] in result)) {
result[values[v]] = 0;
}
result[values[v]] += 1;
}
return [keys[k], result];
}
}
当我在 couchbase webui 中执行这个查询时,我得到了预期的结果。
但是当我尝试从 python 查询它时,我得到一个空的结果集:
from couchbase.bucket import Bucket
from couchbase.views.iterator import View
import os
import fnmatch
cb=Bucket('couchbase://172.17.0.2:8091/my_db', password="my_password")
view = View(cb, "dev_testview", "by_num", limit=10,reduce=True)
for row in view:
print(row.key)
我是不是漏掉了什么?
这个观点还是dev_view。在我可以从 python 查询它之前,我是否必须在生产环境中发布它?
我找到了答案。它来自我必须添加的参数
view = View(cb, "dev_testview", "by_num", limit=10, reduce=True, group=True, inclusive_end=False)