首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种方法可以过滤CouchDB中的子文档?

有没有一种方法可以过滤CouchDB中的子文档?
EN

Stack Overflow用户
提问于 2020-01-23 03:48:28
回答 1查看 116关注 0票数 0

我想在CouchDB中筛选数据库中的子文档。数据库中的示例文档如下:

代码语言:javascript
复制
{
    "Things": {
        "Thing:1": {
            "Number":1
            "Type": "TI"
        },
        "Thing:2": {
            "Number":2,
            "Type": "TI"
        }
    },
    "Type": "TD"
}

是否可以像这样创建一个过滤子文档的视图?

代码语言:javascript
复制
for(key in Object.keys(Things)) {
    return Things[key].Number == 2;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-23 21:40:39

是的,使用map函数非常容易。例如

代码语言:javascript
复制
function (doc) {
   Object.keys(doc.Things).forEach(function(key) {
    if(doc.Things[key].Number === 2) emit(doc._id, 1);
   });
}

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

对于view _ design /thing/_view/thing,设计文档应该如下所示

代码语言:javascript
复制
{
  "_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"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59867265

复制
相关文章

相似问题

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