Couch DB我需要一个地图/视图反向工程师来获得我原来的json格式

时间:2014-02-03 13:10:22

标签: json couchdb

我有一个data.json文件可以正常使用我的应用程序,该文件遵循语法

{
    "name":"TESTER",
    "shortname":"TEST",
    "reknown":"TRIAL",
    "bio":"TESTER is testing"
  },

但是我想转向couchDB以获得可伸缩性 我已经构建了我的CouchDB,因此我拥有100个文档的数据库 在文档中,我创建了一个名为content的Field窗格 并在上面插入/嵌套json文件数据

如何让CouchDB map / view函数以与原始json文件相同的可用JSON格式返回数据而不使用密钥id等。

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

使用list functionsshow functions以您喜欢的任何方式格式化文档。

答案 1 :(得分:0)

如果需要,您可以将其作为单独的文档插入。

{
    "name":"TESTER",
    "shortname":"TEST",
    "reknown":"TRIAL",
    "bio":"TESTER is testing"
}

为了得到你需要的东西,我会添加另一个属性type

{
    "type": "person",
    "name":"TESTER",
    "shortname":"TEST",
    "reknown":"TRIAL",
    "bio":"TESTER is testing"
}

然后你可以有这样的地图功能:

function(doc) {
  if(doc.type === "person") {
    emit(doc._id, doc);
  }
}

如果需要,您可以自己发出文档,但这不是必需的。

然后您可以查询此视图,它将返回所有人员的列表。您可以像Giovanni一样使用show函数指出,但这并不是必需的。

返回的json将包含更多信息,您只需在客户端过滤文档即可获得所需内容。

map(function (doc) {
  return doc.value;
}, requested_document.rows)

为了防止索引变大,可以在可能的情况下发出null。并使用include_docs=true查询视图。