Azure 门户的 Cosmos DB 插入查询的数据资源管理器错误

问题描述 投票:0回答:1

我正在尝试编写一个插入查询以将文档插入 Cosmos DB。

除了使用“新建项目”选项和添加完整 json 之外,还有什么方法可以插入文档吗?

这是我的询问

insert into users (user_id, name, address) values ("XYZ", "ABC", null);

这里的user_id是分区键。 我遇到以下错误。

code":"BadRequest","message":"One of the input values is invalid

但是我重新检查了一下,所有输入值都是正确的。 有什么方法可以解决这个问题,或者有什么方法可以让我知道哪些值造成了这个问题?

azure azure-cosmosdb azure-cosmosdb-sqlapi
1个回答
0
投票

正如 David 提到的,我们可以使用 API/SDK 插入数据。我使用 SDK 将数据插入到 Cosmos DB 容器中:

以下是我将数据插入 Cosmos DB 的步骤:

  • 使用 端点 URL主键初始化 Cosmos 客户端。

  • 定义要插入到 Cosmos DB 容器中的数据。

  • 将数据插入操作包装在

    try-catch
    块中以管理意外异常。

  • 使用

    CreateItemAsync
    方法,我们将
    dataToInsert
    插入到 Cosmos DB 容器中。

  • 检查响应的HTTP状态码,看看插入是否成功。

  • 对于 Cosmos DB 相关问题,会捕获

    CosmosException
    ,而其他意外错误则由标准 Exception
    catch
    块处理。

我尝试过的代码:

var client = new CosmosClient(EndpointUrl, PrimaryKey);
var database = client.GetDatabase(DatabaseId);
var container = database.GetContainer(ContainerId);

var dataToInsert = new
{
    id = Guid.NewGuid().ToString(), // Generate a unique document ID
    name = "Balaji",
    age = 24,
    address = "Hyderabad"
};

try
{
    var response = await container.CreateItemAsync(dataToInsert);
    
    if (response.StatusCode == System.Net.HttpStatusCode.Created)
    {
        Console.WriteLine("Document inserted successfully.");
    }
    else
    {
        Console.WriteLine($"Failed to insert document. Status code: {response.StatusCode}");
    }
}
catch (CosmosException ex)
{
    Console.WriteLine($"Cosmos DB Exception: {ex.Message}");
}
catch (Exception ex)
{
    Console.WriteLine($"An error occurred: {ex.Message}");
}

输出:

控制台输出:

Document inserted successfully.

Azure Cosmos DB 容器中的输出:

{
    "id": "ff1c7da9-8293-4e8d-90f1-0731abc3ae22",
    "name": "Balaji",
    "age": 24,
    "address": "Hyderabad",
    "_rid": "wWUjALZCPGABAAAAAAAAAA==",
    "_self": "dbs/wWUjAA==/colls/wWUjALZCPGA=/docs/wWUjALZCPGABAAAAAAAAAA==/",
    "_etag": "\"a10505ba-0000-0700-0000-64f69f1c0000\"",
    "_attachments": "attachments/",
    "_ts": 1693884188
}
© www.soinside.com 2019 - 2024. All rights reserved.