是否可以在CouchDB中过滤子文档?

问题描述 投票:0回答:1

我想从CouchDB中的数据库中过滤子文档。数据库中的示例文档为:

{
    "Things": {
        "Thing:1": {
            "Number":1
            "Type": "TI"
        },
        "Thing:2": {
            "Number":2,
            "Type": "TI"
        }
    },
    "Type": "TD"
}

是否可以创建一个类似于此子视图的视图来过滤子文档?

for(key in Object.keys(Things)) {
    return Things[key].Number == 2;
}
javascript couchdb
1个回答
0
投票

是的,使用地图功能非常容易。例如

function (doc) {
   Object.keys(doc.Things).forEach(function(key) {
    if(doc.Things[key].Number === 2) emit(doc._id, 1);
   });
}

这适用于CouchDB 2.3。 Fauxton使创建和测试视图变得非常容易。

视图_design / thing / _view / thing的设计文档看起来像这样

{
  "_id": "_design/thing",     
  "views": {
    "thing": {
      "map": "function (doc) {\n   Object.keys(doc.Things).forEach(function(key) {\n    if(doc.Things[key].Number === 2) emit(doc._id, 1);\n});\n\n}"
    }
  },
  "language": "javascript"
}
© www.soinside.com 2019 - 2024. All rights reserved.