Key参数中的子字符串



我正在处理我的CouchDB项目,我想在那里为我的数据库创建一个特定的视图
事实证明,我的一个关键参数的名称中有一个ID,但另一部分是唯一的。例如"unique_ID_unique":"值">
因此,不建议使用暴力解决方案,如更改名称和/或保存方式。

为了清楚起见,每个条目(日期(的ID都不同。我试图使用regex规则对其进行修改,但对于关键部分,它返回NULL

emit(doc[/_unique$/], doc['something.else']);  

有人知道为什么会这样吗?

p.S:我昨天已经有一个这样的问题,但由于我提供的信息不足,导致了错误的答案,我不得不删除它

假设您有一个从特定密钥中提取唯一密钥的函数:

var key = "blabla_120391029301923_blabla";
var keySplitted = key.split("_"); //Value: ["blabla","120391029301923","blabla"]
var uniqueKey = keySplitted[2]; //Value: blabla

由此,您可以创建一个视图,该视图将映射每个文档,并使用您的密钥对其进行索引。

function(doc){
var keySplitted = doc._id.split("_");
if(keySplitted.length == 3){
emit(keySplitted[2]);
}
}

以前的地图ID来自这个:

  • evenig_01012018_food
  • 上午_02012018_musc
  • evenig_01022018_food

到此:

  • 食物
  • 肌肉
  • 食物

更新

通过离线讨论,我能够理解要索引的对象有以下内容:

{
"_id": "doc_1",
"_rev": "1-89d017d9e5c82ee56d9beec2756fec99",
"type": "googrtt",
"ssrc_3685071425_send.bytesSent": "33621"
}

因此,在这份文件中,必须对属性进行拆分。

最终视图内容如下:

function (doc) {
for(key in doc){
var splitKey= key.split('_');
if(splitKey.length === 3){
emit(splitKey[2],doc[key]);
}
}
}

相关内容

  • 没有找到相关文章

最新更新