标签: azure-cosmosdb

Azure DocumentDB和Azure Blob存储

我在我的ASP.net MVC应用程序中使用azure文档数据库.目前我有2个集合,其中包括Employees和Tasks.目前,文档数据库操作一切正常.

但是我找不到一种方法来对文档上传多个图像(一次不是多个图像).例如:假设我需要将2张员工照片存储在单个员工文档中.

我已经阅读了关于azure blob存储的信息,并认为我可以将它用于文件上传.但我无法澄清的是如何在每个员工文档中保留上传文件的引用.

有没有办法做到这一点?

asp.net asp.net-mvc azure azure-blob-storage azure-cosmosdb

0
推荐指数
1
解决办法
330
查看次数

如何构建DocumentDB数据库

我是NoSQL的新手,所以我可能只是有一个基本的误解......

我阅读了本教程,讲授如何使用Firebase制作聊天应用程序.例如,直接消息聊天的JSON如下所示:

{
  "userMessages": {
    "userid1": {
      "userid2": {
        "messageId1": {
          "uid": "userid1",
          "body": "Hello!",
          "timestamp": firebase.database.ServerValue.TIMESTAMP
        },
        "messageId2": {
          "uid": "userid2",
          "body": "Hey!",
          "timestamp": firebase.database.ServerValue.TIMESTAMP
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

请求消息时,您将查看userMessages/UserId1/UserId2.这将给出两个用户之间的所有消息.

我决定使用DocumentDB尝试类似的东西,我不知道该怎么做.看起来我应该能够创建一个名为UserMessages的容器并将所有数据放在上面,但似乎DocumentDB只允许检索和更新顶级文档.所以在这种情况下,我需要将所有内容都放在userid1下,并且每当我添加消息时,我都需要更新整个userid1文档,包括所有未更改的消息.

我能看到这项工作的唯一方法就是将这种设计弄平.但是展平应用程序的其余部分(包含许多更复杂的对象)似乎需要创建更多的容器(每个都要花钱)当我应该能够拥有更多分层设计并仅更新我需要的层或者仅推送需要推送的其他数据.

长话短说,我对NoSQL应该如何构建有一个根本的误解,或者DocumentDB与其他NoSQL解决方案有什么不同?谢谢!

azure nosql azure-cosmosdb

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

为什么我可以在 Azure 文档数据库中看到加密的数据?

根据本文 - https://docs.microsoft.com/en-us/azure/cosmos-db/database-encryption-at-rest,静态数据在 Azure Cosmos DB(Azure 文档 DB)中加密。当我在 Azure 门户中使用数据资源管理器来查看集合时,我可以看到纯文本数据。数据在存储时是否仍处于加密状态,并且仅为 azure 门户中的数据资源管理器视图解密?

azure azure-cosmosdb

0
推荐指数
1
解决办法
227
查看次数

DocumentDB 查询以查找创建日期

我想检索只有 documentID 和文档创建日期时间详细信息的文档。我可以通过以下查询获取 DocumentID,但我们如何获取文档创建日期时间。

select c.id from c
Run Code Online (Sandbox Code Playgroud)

但是,除了 id,我还需要获取文档创建日期

对此的任何帮助表示赞赏!

c# azure-cosmosdb

0
推荐指数
1
解决办法
2421
查看次数

Upsert 只更改/新字段?

对于存储在 azure cosmos db 中的用户,我有以下结构:

{ id:string, commentHistory:[] }

在请求用户时,我执行了一个 upsert,将用户 ID 传入,这就是我所拥有的:

string requestBody = new StreamReader(req.Body).ReadToEnd();
            var toUpsert = JsonConvert.DeserializeObject<dynamic>(requestBody);

            var cosmos = Config.Cosmos.Get;
            var media = await cosmos.GetCollection("users");

            ResourceResponse<Document> result = await cosmos.UpsertDocument(Config.Cosmos.Keys.Collections.MediaCollection, toUpsert);
            return result.Resource;
Run Code Online (Sandbox Code Playgroud)

这似乎也删除了 commentHistory。

如果文档不存在,是否可以进行 upsert 并仅在 id 上插入?

azure azure-cosmosdb

0
推荐指数
1
解决办法
783
查看次数

如何使用 Cosmos DB 查询嵌套数组

给出以下 JSON

{
"Families": [
    { "Name": "Smith",
      "Children": [
        { "Name": "Bob",
            "Pets": [
              { "Name": "Oscar", "Type": "Cat"},
              { "Name": "Otto", "Type": "Dog"}
            ]
        },
        { "Name": "Brittney",
            "Pets": [
              { "Name": "Isolde", "Type": "Dog"},
              { "Name": "Ignatz", "Type": "Turtle"}
            ]
        }
    ]
    },
    { "Name": "Miller",
      "Children": [
        { "Name": "Alex",
            "Pets": [
              { "Name": "Elvis", "Type": "Horse"}
            ]
        }
    ]
    }
]
}
Run Code Online (Sandbox Code Playgroud)

A)我想创建一个产生以下结构的查询

[
    { "FamilyName": "Smith",
    "KidName": "Bob",
    "Petname": "Oscar"
    },
    { "FamilyName": "Smith", …
Run Code Online (Sandbox Code Playgroud)

azure-cosmosdb

0
推荐指数
1
解决办法
3754
查看次数

如何从 Databrick/PySpark 覆盖/更新 Azure Cosmos DB 中的集合

我在 Databricks Notebook 上编写了以下 PySpark 代码,它使用以下代码行成功地将结果从 sparkSQL 保存到 Azure Cosmos DB:

df.write.format("com.microsoft.azure.cosmosdb.spark").mode("overwrite").options(**writeConfig3).save()
Run Code Online (Sandbox Code Playgroud)

完整代码如下:

test = spark.sql("""SELECT
  Sales.CustomerID AS pattersonID1
 ,Sales.InvoiceNumber AS myinvoicenr1
FROM Sales
limit 4""")


## my personal cosmos DB
writeConfig3 = {
    "Endpoint": "https://<cosmosdb-account>.documents.azure.com:443/",
    "Masterkey": "<key>==",
    "Database": "mydatabase",
    "Collection": "mycontainer",
    "Upsert": "true"
}

df = test.coalesce(1)

df.write.format("com.microsoft.azure.cosmosdb.spark").mode("overwrite").options(**writeConfig3).save()
Run Code Online (Sandbox Code Playgroud)

使用上面的代码我已经成功地写入了我的 Cosmos DB 数据库(mydatabase)和集合(mycontainer) 在此处输入图片说明

当我尝试通过使用以下更改 SparkSQL 来覆盖容器时(只需将 pattersonID1 更改为 pattersonID2,并将 myinvoicenr1 更改为 myinvoicenr2

test = spark.sql("""SELECT
  Sales.CustomerID AS pattersonID2
 ,Sales.InvoiceNumber AS myinvoicenr2
FROM Sales
limit 4""")
Run Code Online (Sandbox Code Playgroud)

相反,使用新查询覆盖/更新集合 Cosmos DB 会按如下方式附加容器:

在此处输入图片说明

并且仍然在集合中保留原始查询: …

pyspark pyspark-sql azure-cosmosdb azure-databricks

0
推荐指数
1
解决办法
2402
查看次数

如何在 Cosmos DB 中查找逻辑分区数量和大小

在 Cosmos DB 中,是否可以查看我的数据库创建了多少个逻辑分区以及每个分区当前的填充容量?我想知道我的分区策略划分数据的均匀程度。另外,我想在达到热分区的 20GB 限制之前准备好数据重新分配。

azure azure-cosmosdb

0
推荐指数
1
解决办法
4541
查看次数

UpsertItemAsync 在 .NET Cosmos DB 客户端中做什么?

这个问题涉及到Microsoft.Azure.Cosmos v3.11.0

文件UpsertItemAsync没有为“更新插入”操作指定确切的语义。特别是,它是插入 + 替换,还是插入 +(部分)更新?(我怀疑是前者,因为截至今天这个问题仍然存在。)

azure-cosmosdb

0
推荐指数
1
解决办法
2281
查看次数

Cosmos DB:如何使用 LINQ 查询检测请求费用

在 Cosmos DB v3 中,我得到了一个IOrderedQueryable<T>using GetItemLinqQueryable<T>. 这允许我编写自定义查询。问题是我想在查询实现时跟踪请求费用。如何才能做到这一点?

当我执行像ReadItemAsyncand之类的方法时ExecuteStoredProcedureAsync,返回的对象有一个RequestCharge属性,但我需要使用 linq 查询检测费用。

linq azure nosql azure-cosmosdb

0
推荐指数
1
解决办法
926
查看次数