【问题标题】:How to get all items of container in cosmos db with dotnet core如何使用 dotnet core 获取 cosmos db 中的所有容器项
【发布时间】:2020-08-16 04:57:18
【问题描述】:

您好,我想在 cosmos DB 的数据库中获取容器的所有项目。我可以看到已经有很多方法可用,但我没有看到任何 getAllItems 或类似的方法。

有没有像使用 LINQ 之类的简单方法?

谢谢

【问题讨论】:

    标签: linq .net-core azure-cosmosdb azure-cosmosdb-sqlapi


    【解决方案1】:

    如果您想使用 Linq 执行此操作,可以执行以下操作(如此答案中所建议:How can I use LINQ in CosmosDB SDK v3.0 async query?):

    var db = Client.GetDatabase(databaseId);
    var container = db.GetContainer(containerId);
    
    var q = container.GetItemLinqQueryable<Person>();
    var iterator = q.ToFeedIterator();
    var results = await iterator.ReadNextAsync();
    

    如果您想要非 Linq 解决方案,请使用此解决方案(取自 v3 SDK 示例:https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos.Samples/Usage/ItemManagement/Program.cs#L259:

    QueryDefinition query = new QueryDefinition(
                "select * from sales s where s.AccountNumber = @AccountInput ")
                .WithParameter("@AccountInput", "Account1");
    
            FeedIterator<SalesOrder> resultSet = container.GetItemQueryIterator<SalesOrder>(
                query,
                requestOptions: new QueryRequestOptions()
                {
                    PartitionKey = new PartitionKey("Account1"),
                    MaxItemCount = 1
                });
    
            while (resultSet.HasMoreResults)
            {
                FeedResponse<SalesOrder> response = await resultSet.ReadNextAsync();
                // Work through iterator list here
            }
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      您可以使用Microsoft Azures documentation 中描述的 LINQ。

      这样的事情应该可以解决您的问题:

      var db = Client.GetDatabase(databaseId);
      var container = db.GetContainer(containerId);
      //Get iterator or use some LINQ queries here
      var iterator = container.GetItemLinqQueryable<YourType>().GetEnumerator();
      

      【讨论】:

        猜你喜欢
        • 2021-11-17
        • 2021-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-18
        • 1970-01-01
        • 2018-09-18
        • 2021-06-09
        相关资源
        最近更新 更多