如何使用键为“@”的文档在 couchDB 中创建视图

How to create a view in couchDB with a doc that has a key of "@"

本文关键字:文档 couchDB 视图 创建 何使用      更新时间:2023-09-26

我正在为一个项目测试和学习CouchDB。我们希望将一系列 JSON 文件加载到数据库中。我遇到的问题是 JSON 的格式,因为它具有"@"键。例如:

{
    "_id":"somestringhere",
    "@": [
           {
           "identifier":"somevalue",
           "somekey":"somevalue" 
           },
           {
           "somekey":"somevalue",
           "somekey":"somevalue"
           }
         ]
}

所以我去编写我的 Map 函数来发出"@"的值,如下所示:

function(doc) {
  emit(null, doc.@);
} 

这不起作用并引发错误,因为它不是有效的标识符。什么给?我不认为这是 JSON 的问题。更多的是javascript错误。

经过进一步的挖掘,我发现了更多关于javascript标识符的信息。

为什么在javascript中保留了"@"符号,它的目的是什么?

然后,我能够通过以下方式访问 JSON 的该节点:

function(doc) {
  emit("document": doc['@']);
}