首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CouchDB实现MapReduce的方式似乎与couchbase-lite不同

CouchDB实现MapReduce的方式似乎与couchbase-lite不同
EN

Stack Overflow用户
提问于 2016-05-24 23:33:01
回答 1查看 114关注 0票数 1

在couchDB上,我有以下视图:

代码语言:javascript
复制
function(doc) {
  if(doc._id === 'countryMobileNumberCodes') {
    Object.keys(doc.dictionary).forEach(function(k, i) {
      emit(k, doc.dictionary[k]);
    });
  }
}

这将产生以下结果:

代码语言:javascript
复制
{"total_rows":2,"offset":0,"rows":[
{"id":"countryMobileNumberCodes","key":"1","value":"+265"},
{"id":"countryMobileNumberCodes","key":"2","value":"+27"}
]}

Android上的这个视图(使用couchbase-lite-android 1.2.1)不会发出任何行。但是,如果我将视图更改为以下内容:

代码语言:javascript
复制
function(doc) {
  if(doc._id === 'countryMobileNumberCodes') {
    emit(doc._id, doc.dictionary);
  }
}

然后我确实从couchbase-lite获得了结果(所以文档肯定存在于移动设备上)。

CouchDB实现MapReduce的方式与couchbase-lite不同吗?

我已经看到了couchbase-lite和CouchDB是100%兼容的事实,但情况似乎并非如此(Couchbase-lite and CouchDB)。

EN

回答 1

Stack Overflow用户

发布于 2016-06-07 04:50:40

假设您正在使用Couchbase Lite的REST API,可能是在PhoneGap或Cordova中。看起来该容器中的JavaScript解释器不支持Object.keysforeach()。您可能需要重写地图并仅使用较旧的JavaScript特性来缩减函数。

(我的JS非常生疏,所以我不能告诉您添加这些API的语言版本。也有可能它们不是内置的,而是CouchDB为了方便起见而包含在JS上下文中的库的一部分。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37418001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档