Azure Cosmos SQL API - 如何将自定义对象存储为 @PartitionKey

Posted

技术标签:

【中文标题】Azure Cosmos SQL API - 如何将自定义对象存储为 @PartitionKey【英文标题】:Azure Cosmos SQL API - How do I store a custom object as @PartitionKey 【发布时间】:2021-10-29 19:14:13 【问题描述】:

是否可以使用 Java 8 使用 @PartitionKey 将自定义 POJO 存储为 Json 字符串?是的,请告诉我如何。

import com.azure.spring.data.cosmos.core.mapping.PartitionKey;

    @PartitionKey
        private Result result;

结果的值类似于"resultID":"1","secret":"my secret"

【问题讨论】:

您可以配置嵌套路径 您能详细说明一下吗?代码 sn-ps 会有所帮助 无法将对象指定为 Cosmos DB 中的分区键。但是,可以为 Core (SQL) API 提供子分区,它允许您指定最多 3 个用作分区层次结构的属性。如果你有兴趣,这里有一个私人预览。注册在这里。 aka.ms/cosmos-subpartitioning-signup @MarkBrown,谢谢!这是我现在解决它的方法(我的答案如下)。 【参考方案1】:

正如@Mark Brown 正确评论的那样,我认为-“不可能在 Cosmos DB 中将对象指定为分区键”,但是我做了一个嵌套分区键路径,如下所示:

import com.azure.spring.data.cosmos.core.mapping.Container;

    @Container(containerName = "DcLogins", partitionKeyPath = "/result/company",autoScale = true)
    public class DcLogins 
     private Result result;
 
    public class Result 
     private String company;

顺便提一下,在partitionKeyPath中,resultResult的对象,company变量中的变量应该与你处理"company":"sapcustid","secret":"my secret"的json对象匹配

【讨论】:

以上是关于Azure Cosmos SQL API - 如何将自定义对象存储为 @PartitionKey的主要内容,如果未能解决你的问题,请参考以下文章

Cosmos db 使用 Java SDK 部分更新 SQL api

Azure 函数:如何将 http 触发器函数的查询字符串参数绑定到 Cosmos DB 的 SQL 查询

sql Azure Cosmos DB

如何配置我的 Azure Functions 环境,以便可以在 Python 代码中使用 Cosmos DB 客户端?

Azure Rest API 用于获取 Cosmos DB 帐户的 RU 指标

如何使用 Cassandra API 将 Python 的 cosmos_client 连接到 Cosmos DB 实例?