【问题标题】:Azure Cosmos DB - how to retrieve json attributes from a document similar like retrieving column names from SQL tableAzure Cosmos DB - 如何从类似于从 SQL 表中检索列名的文档中检索 json 属性
【发布时间】:2020-05-29 14:53:14
【问题描述】:
{  
  "Volcano Name": "Agua de Pau",  
  "Country": "Portugal",  
  "Region": "Azores",  
  "Location": {  
    "type": "Point",  
    "coordinates": [  
      -25.47,  
      37.77  
    ]  
  },  
  "Elevation": 947,  
  "Type": "Stratovolcano",  
  "Status": "Historical",  
  "Last Known Eruption": "Last known eruption from 1500-1699, inclusive",  
  "id": "d44c94b6-81f8-4b27-4970-f79b149529d3",  
  "_rid": "Sl8fALN4sw4BAAAAAAAAAA==",  
  "_ts": 1448049512,  
  "_self": "dbs/Sl8fAA==/colls/Sl8fALN4sw4=/docs/Sl8fALN4sw4BAAAAAAAAAA==/",  
  "_etag": "\"0000443f-0000-0000-0000-564f7b680000\"",  
  "_attachments": "attachments/"  
} 

在 MS SQL 中,我们可以像下面这样从表中读取列名。

选择列名、数据类型、字符最大长度 来自 INFORMATION_SCHEMA.COLUMNS 其中 table_name = 'table_name' 。

我希望文档 db 也一样。是否可以 从上面具有类型“Stratovolcano”的示例文档中检索json名称“火山名称”、“国家”、“地区”、“位置”...等

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 由于我是 cosmos DB 的新手,我仍在寻找解决方案。我知道直接选择查询来检索值。但对于这一点,我没有任何线索。如果有任何建议,请告诉我。
  • @DineshV - Cosmos DB SQL API 文档相当详尽,包括所有基本查询子句、过滤、投影等。我建议从那里开始。此外,您的评论表明您已经尝试过一些事情 - 您应该考虑编辑您的问题以具体显示您尝试过的内容。
  • @DavidMakogon ...这是一个有趣的问题(至少我第一次看到这种问题)! OP 有兴趣使用选择查询查找文档模式。
  • @GauravMantri-AIS - 是的,我看到他们在我发表评论后将其发布在(现已删除的)评论中。

标签: json azure-cosmosdb


【解决方案1】:

Azure Cosmos SQL 容器是与架构无关的项目容器。与表中的行不同,容器中的项目可以具有任意模式。因此,Cosmos DB 将无法满足您的要求。

在您的情况下,您的所有项目都将具有相同的架构。因此,您可以执行“select * from c where c.id = "someid"” 并从重新调整的项目中推断架构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多