标签: azure-cosmosdb

用于在DocumentDB中进行分页的Skip和top函数

我们可以像Skip和Top那样进行分页

从联系人中选择10个PostId

在DocumentDB?

azure-cosmosdb

6
推荐指数
1
解决办法
2323
查看次数

DocumentDB替换不工作

我最近意识到DocumentDB通过ReplaceDocumentAsync支持独立的更新操作.

我用Replace操作替换了下面的Upsert操作.

var result = _client
    .UpsertDocumentAsync(_collectionUri, docObject)
    .Result;
Run Code Online (Sandbox Code Playgroud)

所以这是现在:

var result = _client
    .ReplaceDocumentAsnyc(_collectionUri, docObject)
    .Result;
Run Code Online (Sandbox Code Playgroud)

但是,现在我得到了例外:

Microsoft.Azure.Documents.BadRequestException:ResourceType Document是意外的.ActivityId:b1b2fd71-3029-4d0d-bd5d-87d8d0a2fc95

不知道为什么,upsert和replace具有相同的静脉,而且对象与upsert相同,所以我希望它可以毫无问题地工作.

所有帮助赞赏.

谢谢

更新:尝试使用SelfLink方法实现此功能,并且适用于替换,但自身链接不适用于Upsert.这种行为令人困惑.我不喜欢我必须使用字符串连接在代码中构建自我链接.

azure azure-cosmosdb

6
推荐指数
1
解决办法
3238
查看次数

DocumentDB上的并发

这是DocumentDB上的一个新问题.我们希望将DocumentDB用于我们的应用程序.我们有多个用户更改存储在DocumentDB中的数据.我们怎样才能确保一个用户不会覆盖另一个用户的更改?

azure azure-cosmosdb

6
推荐指数
2
解决办法
2837
查看次数

对DocumentDB中的查询收取RU费用

使用.NET库,如何确定查询的RU费用.它返回IQueryable,我不知道如何记录它.如何记录所有请求的RU的奖励点.

简单的代码,但不返回RU:

 var docs = DocumentDBRepository<CampaignMessage>.client.
         CreateDocumentQuery<CampaignMessage>(UriFactoryExtensions.CreateCollectionUri(), new FeedOptions() { MaxItemCount = -1, MaxDegreeOfParallelism = 5 }).Where(x => x.BlastKey == "abc-796").
Run Code Online (Sandbox Code Playgroud)

azure-cosmosdb

6
推荐指数
1
解决办法
621
查看次数

Azure Cosmos DB Mongodb $ t和$ v

我有2个Azure Cosmos DB,它运行在MongoDb中.第一个是由其他人创建的,第二个是由我创建的.

如果我查询我的数据库,我的结构与$ t和$ v属性变得非常奇怪.

我的结构:

在此输入图像描述

其他DB的结构(应该是这样): 在此输入图像描述

我的后端与两者都能正常工作,但我想添加Azure搜索,我不能用我的结构来做这件事.为什么会发生这种情况,我该如何解决?

azure mongodb azure-cosmosdb

6
推荐指数
1
解决办法
1071
查看次数

CosmosDB仿真器上的api-ms-win-core-path-l1-1-0.dll缺失错误

当我尝试从Windows 7启动CosmosDB模拟器时,我收到错误消息'程序无法启动,因为您的计算机缺少api-ms-win-core-path-l1-1-0.dll. ".

在此输入图像描述

需要支持来修复此错误.

谢谢.

azure-cosmosdb

6
推荐指数
1
解决办法
1244
查看次数

获取CosmosDB集合中每个分区的大小

是否可以获得Cosmos DB集合中每个分区的大小?我知道门户网站将在Metrics刀片中显示集合中的前几个分区,但我很有兴趣看到每个分区的大小.

azure-cosmosdb

6
推荐指数
1
解决办法
1129
查看次数

在使用Linq查询的单元测试中模拟IDocumentQuery

我正在编写单元测试DocumentDBRepository但是我得到了一个空引用异常.我使用Moq框架和XUnit.

这是我DocumentDBRepository课堂上的方法.

public class DocumentDBRepository<T> : IRepository<T> where T: class
{
    private static string DatabaseId;
    private static string CollectionId;
    private static IDocumentClient client;
    public DocumentDBRepository(IDocumentClient documentClient, string databaseId, string collectionId)
    {
        DatabaseId = databaseId;
        CollectionId = collectionId;
        client = documentClient;
        CreateDatabaseIfNotExistsAsync().Wait();
        CreateCollectionIfNotExistsAsync().Wait();
    }

    public async Task<IDocumentQuery<T>> GetQuery(Expression<Func<T, bool>> predicate)
    {
        try
        {
            IDocumentQuery<T> query = client.CreateDocumentQuery<T>(
          UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId),
          new FeedOptions { MaxItemCount = -1, EnableCrossPartitionQuery = true })
          .Where(predicate)
          .AsDocumentQuery();

            return query;
        }
        catch (Exception e) …
Run Code Online (Sandbox Code Playgroud)

unit-testing moq azure asp.net-core azure-cosmosdb

6
推荐指数
1
解决办法
1168
查看次数

如何通过广义方式在Cosmos DB存储过程中处理乐观并发?

我有存储过程,该过程仅基于Etag更新文档。

我已经获取了3种文档,更新了所有3种文档的某些属性。我正在尝试更新存储过程中的所有3个文档。但是在存储过程更新第3个文档之前,另一个用户更新了第3个文档。所以在这种情况下,我确实会出现并发错误。我可以在存储过程中获取文档,但是我不确定必须更新哪个属性,因为我不知道该属性是由我还是由存储过程中的其他用户修改的,因为它只是替换了文档。与文档需要更新的所有地方所使用的存储过程相同,因此我无法对其进行硬编码。

我该如何处理?

在实体框架代码优先方法中,我们确实为SQL 提供了DbUpdateConcurrencyException类,从中我们可以看到哪个属性被修改并采取相应的Action。Cosmos DB中是否提供类似于DbUpdateConcurrencyException的异常类?

我确实读过DocumentDB的第3部分– DocumentDB中的并发DocumentDB –存储过程中的乐观并发,这两篇文章都告诉我们如何使用Etag处理乐观并发。

azure azure-cosmosdb

6
推荐指数
1
解决办法
353
查看次数

如何为Mongo API禁用Cosmos DB分片密钥

我正在将一个非常简单的mongo数据库(夫妇100个条目)迁移到Azure Cosmos DB。我的应用程序基于node-js,所以我使用猫鼬作为映射器。在非常简单之前,先定义架构,查询集合并完成。

现在,当在cosmos db中设置集合时,有人问我分区键和分片键的问题。我可以忽略的第一个,但最后一个是必需的。快速阅读有关该主题的内容并了解它是一种分区(再次,我不需要也不想),我只是选择_id作为分片键。

当然有些东西行不通。

虽然查找查询工作正常。更新或插入记录失败,以下是错误:

MongoError:命令中的查询必须针对单个分片键

Cosmos db(使用mongo API)被广告宣传为我的替代产品。显然不是这种情况,因为我从来不需要担心mongo中的这类事情,尤其是对于这么小的app / db。

因此,我可以以某种方式禁用分片吗?另外,我如何定义分片键,而不用担心它呢?

干杯

sharding azure-cosmosdb azure-cosmosdb-mongoapi

6
推荐指数
1
解决办法
1917
查看次数