Как написать SQL-запрос для Cosmos DB?

Я новичок в Cosmos DB, и у меня есть вопрос, что я создал коллекцию под названием student в Cosmos DB и подключил базу данных в своем .net sdk, тогда как мне написать запрос для выбора всех данных из коллекции student? ?

Если мой ответ вам поможет, отметьте его как ответ.

Jay Gong 01.11.2018 02:17
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
383
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

См. Пример кода:

class QuerySample
    {
        private static readonly string endpointUrl = "https://***.documents.azure.com:443/";
        private static readonly string authorizationKey = "***";
        private static readonly string databaseId = "db";
        private static readonly string collectionId = "coll";

        private static DocumentClient client;

        public static async void QueryTest()

        {
            client = new DocumentClient(new Uri(endpointUrl), authorizationKey);
            var uri = UriFactory.CreateDocumentCollectionUri(databaseId, collectionId);

            var query = client.CreateDocumentQuery( uri, "select * from c",
            new FeedOptions
            {
                MaxItemCount = -1,                    
                //EnableCrossPartitionQuery = true
            });
            var queryAll = query.AsDocumentQuery();

            var results = new List<Student>();

        }
    }
Ответ принят как подходящий

Есть несколько способов выполнить SQL-запросы с помощью кода C#.

Используя .NET SDK:

private async Task<List<Student>> GetStudentsAsync()
{
    var serviceEndpoint = new Uri("https://localhost:8081");
    var masterKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw= = ";
    var collectionUri = UriFactory.CreateDocumentCollectionUri("databaseId", "collectionId");
    var documentClient = new DocumentClient(serviceEndpoint, masterKey);

    var query = documentClient.CreateDocumentQuery(collectionUri, "select * from c").AsDocumentQuery();
    var results = new List<Student>();

    while (query.HasMoreResults)
    {
        results.AddRange(await query.ExecuteNextAsync<Student>());
    }

    return results;
}

Также есть библиотека (которую я сделал), которая упрощает доступ к данным и запросы CosmosDB, под названием Космонавт.

Используя это, то же самое становится таким:

private async Task<List<Student>> GetStudentsCosmonautAsync()
{
    var serviceEndpoint = new Uri("https://localhost:8081");
    var masterKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw= = ";
    var databaseId = "databaseId";
    var studentStore = new CosmosStore<Student>(new CosmosStoreSettings(databaseId, serviceEndpoint, masterKey));

    return await studentStore.Query("select * from c").ToListAsync();
}

Все сводится к личным предпочтениям, поэтому я предлагаю несколько вариантов на выбор.

Другие вопросы по теме