如何获取Azure Cosmos DB容器中所有项的完整字段结构视图?
Cosmos DB容器完整字段结构视图生成问题
已知条件
- Cosmos DB是无固定模式的NoSQL数据库
- 同一容器内的数据项结构(shape)可能存在差异
问题
是否可以生成包含该容器内所有项的全部字段排列的最完整项结构视图?
示例说明
原始Employee容器数据
{ "userId":"rirani", "jobTitleName":"Developer", "firstName":"Romin", "lastName":"Irani" } { "userId":"nirani", "jobTitleName":"Developer", "firstName":"Neil", "lastName":"Irani", "preferredFullName":"Neil Irani" } { "userId":"thanks", "jobTitleName":"Program Directory", "firstName":"Tom", "lastName":"Hanks", "employeeCode":"E3" }
期望的最完整项结构视图
{ "userId":"", "jobTitleName":"", "firstName":"", "lastName":"", "preferredFullName":"", "employeeCode":"" }
回答
可以生成这样的完整结构视图。实现思路如下:
- 遍历目标容器内的所有数据项,收集所有出现过的字段名称
- 将收集到的所有字段组合成一个新的JSON对象,为每个字段设置空字符串作为占位符
需要注意:如果容器数据量极大,全量遍历会消耗较多计算和存储资源。若允许少量字段遗漏,可通过抽样部分数据来收集字段;但要确保覆盖所有字段,必须遍历容器内的全部数据项。
内容的提问来源于stack exchange,提问作者Fred2020
相关产品推荐
相关产品推荐

