Cosmos DB 是一种分布式、多模型数据库服务,支持多种数据模型,包括文档、图形和键值对。它提供了类似于 LINQ 的查询接口,允许开发者使用 C# 或其他支持的语言进行查询。
在 Cosmos DB 中,你可以使用 IQueryable
接口来执行查询,并且可以按照多个列进行排序。以下是如何实现多列排序的示例:
当你需要从 Cosmos DB 中检索数据,并且希望根据多个属性进行排序时,可以使用 IQueryable
接口。
以下是一个使用 C# 和 Cosmos DB SDK 进行多列排序的示例:
using Microsoft.Azure.Cosmos;
using System;
using System.Linq;
public class Item
{
public string id { get; set; }
public string category { get; set; }
public string name { get; set; }
public decimal price { get; set; }
}
public class Program
{
private static CosmosClient client;
private static Database database;
private static Container container;
public static async Task Main(string[] args)
{
string endpoint = "<your-endpoint>";
string key = "<your-key>";
string databaseName = "<your-database-name>";
string containerName = "<your-container-name>";
client = new CosmosClient(endpoint, key);
database = client.GetDatabase(databaseName);
container = database.GetContainer(containerName);
var query = container.GetItemLinqQueryable<Item>()
.OrderBy(item => item.category)
.ThenBy(item => item.price);
FeedIterator<Item> results = query.ToFeedIterator();
while (results.HasMoreResults)
{
foreach (var item in await results.ReadNextAsync())
{
Console.WriteLine($"{item.name} - {item.category} - {item.price}");
}
}
}
}
CosmosClient
类连接到 Cosmos DB。GetDatabase
和 GetContainer
方法获取数据库和容器的引用。GetItemLinqQueryable
方法获取 IQueryable
接口,然后使用 OrderBy
和 ThenBy
方法进行多列排序。ToFeedIterator
方法执行查询,并遍历结果。通过上述步骤和示例代码,你可以在 Cosmos DB 中使用 IQueryable
接口按多列排序数据。
领取专属 10元无门槛券
手把手带您无忧上云