Stored procedures 无法使用数字分区键查询Cosmos DB

Stored procedures 无法使用数字分区键查询Cosmos DB,stored-procedures,key,azure-cosmosdb,partition,Stored Procedures,Key,Azure Cosmosdb,Partition,我试图使用数字字段作为分区键,但无法在其上运行存储过程。我不确定我是否做错了什么,或者这是不可能的 我有两个具有两个不同分区键的集合 集合1中的示例文档 { "id":"1", "group": "a" } 集合2中的示例文档 { "id":"1", "group": 1 } 不同之处在于,第二个集合中的group字段周围没有双引号 这两个集合都将group作为分区键,我正在尝试执行Azure Portal for Cosmos DB中提供的示例存储过程 虽然我能够成功运行第一个集合

我试图使用数字字段作为分区键,但无法在其上运行存储过程。我不确定我是否做错了什么,或者这是不可能的

我有两个具有两个不同分区键的集合

集合1中的示例文档

{
 "id":"1",
 "group": "a"
}
集合2中的示例文档

{
 "id":"1",
 "group": 1
}
不同之处在于,第二个集合中的group字段周围没有双引号

这两个集合都将group作为分区键,我正在尝试执行Azure Portal for Cosmos DB中提供的示例存储过程

虽然我能够成功运行第一个集合,但第二个集合会产生一个错误“找不到文档”

我正在从sql server数据库导入数据,导入的int字段没有双引号。我搜索了很多,但找不到与没有双引号的数字分区键相关的文档


是否可以从数字字段执行分区键??感谢您的帮助,因为此字段最适合我的分区集合,非常有用。

请不要担心cosmos db存储过程中支持的数字分区键。您做的一切都是正确的。您遇到了意外的结果,因为azure portal将分区键输入标识为
String
type,即使您填写了
Number
type

您可以使用cosmos db sdk或rest api对其进行测试。例如,java sdk示例如下:

import com.microsoft.azure.documentdb.*;

public class ExecuteSPTest {

    static private String YOUR_COSMOS_DB_ENDPOINT = "https://***.documents.azure.com:443/";
    static private String YOUR_COSMOS_DB_MASTER_KEY = "***";

    public static void main(String[] args) throws DocumentClientException {

        DocumentClient client = new DocumentClient(
                YOUR_COSMOS_DB_ENDPOINT,
                YOUR_COSMOS_DB_MASTER_KEY,
                new ConnectionPolicy(),
                ConsistencyLevel.Session);

        RequestOptions options = new RequestOptions();
        PartitionKey partitionKey = new PartitionKey(1);
        options.setPartitionKey(partitionKey);

        StoredProcedureResponse queryResults = client.executeStoredProcedure(
                "/dbs/db/colls/group/sprocs/sample",
                options,
                null);

        String document = queryResults.getResponseAsString();

        System.out.println(document);

    }
}
输出:


感谢您的回复!是否可以在门户中查询,或者是通过SDK的唯一选项?@有兴趣的程序员到目前为止,根据我的观察,它只受SDK支持。但您可以创建一个反馈给cosmos db团队,然后按照该过程进行操作。非常感谢。