标签: azure-cosmosdb

Cosmos DB - 使用 Python 插入多条记录

在 Cosmos DB 中,我可以(感谢 SO 社区)插入这样的文档:

data  = {'attribute1':1, 'attribute2': 2}
client.CreateDocument('dbs/databaseName/colls/collectionName/', data)
Run Code Online (Sandbox Code Playgroud)

如果我可以一次插入多个文档,那就太好了,就像在 SQL 中你可以这样做:

insert into table values (1, 2), (3,4), (5,6)
Run Code Online (Sandbox Code Playgroud)

我知道您可以使用存储过程进行批量上传,但是如果我基本上可以将一堆文档连接在一起,我认为这对我来说会更好(...或者至少让我现在学习如何编写存储产品) .

python azure azure-cosmosdb

5
推荐指数
1
解决办法
3263
查看次数

CosmosDB - 有没有办法获得 MongoDB API RequestCharge

那么,当针对 CosmosDB 使用带有 C# 驱动程序的 MongoDB API 时,我们能否以某种方式RequestCharge从 CosmosDB 响应中获取每个查询?

azure-cosmosdb

5
推荐指数
1
解决办法
1526
查看次数

CosmosDB 创建 - API 选项(SQL 与 Graph)

我对使用Azure CosmosDB的图形功能很感兴趣。查看文档,我看到它将图形顶点和边作为 JSON 文档(具有商定的架构)进行处理,因此可以作为普通的旧 DocumentDB 访问它。

考虑到这一点,您在创建新实例(链接)时需要进行的API选择的含义是什么?

例如:

  • 如果我将数据库创建为SQL (DocumentDB) 并通过客户端的图形部分(例如 CreateGremlinQuery)操作数据,我会失去什么
  • 如果我将数据库创建为图形并通过客户端的 DocumentDB 部分(例如 CreateDocumentAsync)操作数据,我会失去什么

更新:我知道门户差异(如下所述Jesse Carter)。我感兴趣的是,在 SQL(Document DB) 与 Graph 之间进行选择的特定场景中,此开关是否会驱动其他任何内容

gremlin azure-cosmosdb

5
推荐指数
1
解决办法
455
查看次数

MongoDB 数组排序在 CosmoDB 中不起作用

更新

CosmoDB 团队确认他们所说的存在问题,他们已经在着手修复。

此处评论部分的更多信息:https : //docs.microsoft.com/en-us/azure/cosmos-db/mongodb-introduction

原问题

我们正计划迁移到 CosmoDB,但我们发现 $sort 命令存在问题。在我们当前运行此查询的 MongoDB 服务器中:

db.getCollection('Product').find({ 
"ProductTypeId" : ObjectId("5913546b1ba88338e4347641"), 
"SubtypeIngredients" : "5949852c1ba88344d0facbf5"
})
.skip(0).sort({ "IngredientRanks.2.Rank" : 1 }).limit(1)
Run Code Online (Sandbox Code Playgroud)

我们得到了一些结果,但是在 CosmoDB 中运行相同的查询时,我们没有得到任何结果。

如果我从查询中删除排序命令,我会从 CosmoDB 获得结果

集合中的数据在我们本地db和CosmoDB中是一样的。

任何帮助,将不胜感激。谢谢!

更新:

这是显示问题的实际查询的屏幕截图。

在此处输入图片说明

mongodb azure-cosmosdb

5
推荐指数
1
解决办法
1222
查看次数

Azure Cosmos DB:503 服务不可用

当从公司网络外部的代码进行连接时,Cosmos DB 连接工作得很好。但从公司网络来看,它会抛出一个503 ServiceUnavailable状态代码。可能出现哪些问题?

azure azure-cosmosdb

5
推荐指数
1
解决办法
7916
查看次数

Azure CosmosDb 在 AppInsights 中显示已取消的操作

我有时会在 Application Insights 的 Failures => failed dependency 中看到此错误: Azure 异常屏幕截图

一直在搜索文档,但在任何地方都看不到提到这一点。此状态是否意味着操作已通过令牌取消,或者是否类似于以前的 400 错误的跨分区响应?(https://github.com/Azure/azure-cosmos-dotnet-v2/issues/606#issuecomment-427909582

另外,此操作是否会重试,或者是否会因此丢失数据?

azure-application-insights azure-cosmosdb

5
推荐指数
0
解决办法
820
查看次数

C# Cosmos DB 补丁 - 将元素插入子集合

尝试将新项目添加到父对象的子集合中。例如,在下面的代码中,如何将一个新项目添加到 Items 集合中?

{
    "id": "SalesOrder2",
    "ponumber": "PO15428132599",
    "OrderDate": "2005-07-01T00:00:00",
    "AccountNumber": "Account2",
    "Items": [
        {
            "Id": 1,
            "OrderQty": 3,
            "ProductCode": "A-123",
            "ProductName": "Product 1",
            "CurrencySymbol": "$",
            "CurrencyCode": "USD",
            "UnitPrice": 17.1,
            "LineTotal": 5.7
        },
        {
            "Id": 2,
            "OrderQty": 2,
            "ProductCode": "A-456",
            "ProductName": "Product 2",
            "CurrencySymbol": "$",
            "CurrencyCode": "USD",
            "UnitPrice": 10,
            "LineTotal": 20
        }
    ],
    "_rid": "BsMkAMc43s4CAAAAAAAAAA==",
    "_self": "dbs/BsMkAA==/colls/BsMkAMc43s4=/docs/BsMkAMc43s4CAAAAAAAAAA==/",
    "_etag": "\"00000000-0000-0000-e136-0dbec04601d7\"",
    "_attachments": "attachments/",
    "_ts": 1637760030
}
Run Code Online (Sandbox Code Playgroud)

做这样的事情:

public async Task AddProduct(Item item)
{
        var response = await CosmosDbContainer.PatchItemAsync<Product>(
        id: "a1dc8286-bb5e-4ac0-beb4-f9f1dfc79711",
        partitionKey:new PartitionKey("a1dc8286-bb5e-4ac0-beb4-f9f1dfc79711"), …
Run Code Online (Sandbox Code Playgroud)

c# azure-cosmosdb azure-cosmosdb-sqlapi

5
推荐指数
1
解决办法
2430
查看次数

如何检查 Docker 容器中的 Cosmos DB 模拟器是否已完成启动?

我们在 Docker 容器中使用 Cosmos DB 模拟器。容器与测试一起启动。有时在第一次测试期间,连接时会出现读取超时,测试会中止。在测试之前我们是否可以运行任何检查来验证 Cosmos DB 是否已完成初始化?例如通过查询特定的URL?

docker azure-cosmosdb azure-cosmosdb-emulator

5
推荐指数
1
解决办法
952
查看次数

当我尝试创建数据库时,azure-cosmos-emulator 挂起

我在 Intel Mac 上,尝试运行 linux azure-cosmos-emulator 模拟器,但每次启动映像并尝试创建数据库时,它都会挂起并且从不创建数据库。容器日志中没有显示任何内容。我该如何解决这个问题或排除故障?

这是我的设置。我究竟做错了什么?

version: '2.4'

## to run:
##  export EXTERNAL_IP=$(ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}' | head -n 1)
##  docker-compose up -d

services:

  cosmosdb:
    container_name: cosmosdb
    hostname: cosmosdb
    image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
    platform: linux
    tty: true
    restart: always
    mem_limit: 3GB
    ports:
      - '8081:8081'
      - '8900-8902'
      - '10250-10256'
      - '10350:10350'
    environment:
      AZURE_COSMOS_EMULATOR_PARTITION_COUNT: 10
      AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE: true
      AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE: ${EXTERNAL_IP}
    volumes:
      -  vol_cosmos:/tmp/cosmos.data

volumes:
  vol_cosmos:
Run Code Online (Sandbox Code Playgroud)

注1:该文件夹/tmp/cosmos.data是我的Mac上具有777权限的文件夹。当我启动容器时,我没有看到在此文件夹中创建任何文件。注意2:我还尝试将持久性设置为 false。仍然无法创建数据库。注3:我曾经有过这个工作,但我不知道我做了什么来破坏它。

azure-cosmosdb

5
推荐指数
1
解决办法
1262
查看次数

如果 docker-compose 文件中的映射端口不同,Cosmos SDK 会遇到超时

这个问题最初是由ben-graffleGithub上提出的。
我在这里发帖是为了扩大这个问题的受众。

使用 cosmos C# SDK 以及 docker-compose 文件中的特定端口映射配置接收 408 超时

docker compose 可以工作

cosmos:
    image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
    container_name: cosmos
    ports:
      - 8081:8081
      - 10251:10251
      - 10252:10252
      - 10253:10253
      - 10254:10254
    expose:
      - "8081"
      - "10251-10255"
    environment:
      - AZURE_COSMOS_EMULATOR_PARTITION_COUNT=6
      - AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=false
      - AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=${LOCALIPADDRESS}
Run Code Online (Sandbox Code Playgroud)

docker compose 不起作用

cosmos:
    image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
    container_name: cosmos
    expose:
      - "8081"
      - "10251-10255"
    ports:
      - 8082:8081
      - 10252:10251
      - 10253:10252
      - 10254:10253
      - 10255:10254
    environment:
      - AZURE_COSMOS_EMULATOR_PARTITION_COUNT=6
      - AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=false
      - AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=${LOCALIPADDRESS}
Run Code Online (Sandbox Code Playgroud)

抛出异常的函数调用

var httpMessageHandler …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose azure-cosmosdb

5
推荐指数
1
解决办法
840
查看次数