如何使用[]操作符对嵌套重新执行此命令?



我刚开始使用RethinkDB,我喜欢它。我已经成功地得到了这个命令在json数据上工作:

r.db("test").table("gleif").filter({"lei:LEIRecord": {
"lei:Entity": { 
"lei:HeadquartersAddress": { 
        "lei:City":  "Toronto"  
}
}
}
}).pluck({"lei:LEIRecord": {"lei:Entity": "lei:LegalName"}})

但是它以json方式返回数据。我想使用[]运算符来简化查询,看看它返回什么类型的数据。然而,我似乎无法使[]操作符工作。我相信您可以阅读它,但我正在过滤多伦多城市,但只希望返回LegalName。谢谢你。

如果我没理解错的话,对于doc

{id: "toront", 
  "lei:LEIRecord": {
    "lei:Entity": { 
      "lei:LegalName": "TorontoTest",
      "lei:HeadquartersAddress": { 
        "lei:City":  "Toronto"  
      }
    }
  }
}

使用你想要的查询而不是这个

[{"id": "toront" ,
    "lei:LEIRecord": {
        "lei:Entity": {
            "lei:HeadquartersAddress": {
                "lei:City": "Toronto"
            } ,
            "lei:LegalName": "TorontoTest"
        }
    }  
}]

像这样获取"lei:LegalName":

[{"lei:LegalName":"TorontoTest"}]

如果是,则可以使用map:

r.db("test").table("gleif").filter(
  {"lei:LEIRecord": {
    "lei:Entity": { 
      "lei:HeadquartersAddress": { 
        "lei:City":  "Toronto" 
      }
    }
  }
}).map(function(doc){
  return {"lei:LegalName": doc("lei:LEIRecord")("lei:Entity")("lei:LegalName")};
})

如果你只想要一个数组的名字,像这样:

["TorontoTest"]

你可以使用这个查询:

r.db("test").table("gleif").filter(
  {"lei:LEIRecord": {
    "lei:Entity": { 
      "lei:HeadquartersAddress": { 
        "lei:City":  "Toronto" 
      }
    }
  }
}).map(function(doc){
  return doc("lei:LEIRecord")("lei:Entity")("lei:LegalName");
})

最新更新