无法通过Azure UI向Cosmos DB(NoSQL API)批量上传数据求助
Cosmos DB批量上传报错:Cannot use the 'in' operator to search for 'location' in 1
根因分析
容器分区键设置为/x_id/location/name,该路径要求x_id是嵌套对象,且包含location子对象,location下需有name字段。但你上传的JSON数据中,x_id是字符串类型(如"1"),location是与x_id平级的独立字段,完全不匹配分区键的路径规则。
单条上传时Cosmos DB UI可能存在容错逻辑,而批量上传会严格按路径解析,导致代码尝试在字符串"1"中查找location属性,触发in运算符错误。
修复方案
根据实际需求二选一:
- 调整分区键路径:如果你的分区键意图是使用平级的
location或x_id字段,修改容器分区键为对应路径,比如/location或/x_id,匹配现有数据结构。 - 修改数据结构:若必须保留
/x_id/location/name的分区键路径,需调整JSON数据为嵌套结构,示例如下:[ { "x_id": { "location": { "name": "10" } }, "type": "ROLL", "source": "A", "event_name": "B" }, { "x_id": { "location": { "name": "11" } }, "type": "ROLL", "source": "C", "event_name": "D" } ]
验证操作
- 进入Cosmos DB容器配置页,更新分区键(或调整数据结构)
- 使用
Upload Item重新批量上传数据,确认错误消除
内容的提问来源于stack exchange,提问作者user19785518
相关产品推荐
相关产品推荐

