如何使用 [] 运算符进行嵌套来重新执行此命令?

How do I re-do this command using the [] operator for the nesting?

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

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

但是这个 returns 数据以 json 类似的方式。我想使用 [] 运算符来简化查询并查看它 returns 的数据类型。但是,我似乎无法让 [] 运算符工作。我相信您可以阅读它,但我正在筛选多伦多市,但只希望返回 LegalName。谢谢。

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

{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"}]

如果是这样,那么你可以使用地图:

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");
})