Начало работы с Azure Cosmos DB для MongoDB с помощью JavaScript

Область применения: Mongodb

В этой статье показано, как подключиться к Azure Cosmos DB для MongoDB с помощью собственного пакета npm MongoDB. После подключения можно выполнять операции с базами данных, коллекциями и документами.

Примечание.

Примеры фрагментов кода доступны на GitHub в виде проекта JavaScript.

Справочная документация | по API для MongoDB Package (npm)

Необходимые компоненты

Создание приложения JavaScript

  1. Создайте приложение JavaScript в пустой папке с помощью предпочтительного терминала. Используйте команду npm init, чтобы приступить к созданию файла package.json. Примите значения по умолчанию для подсказок.

    npm init
    
  2. Добавьте пакет npm для MongoDB в проект JavaScript. Используйте команду npm install package, указывающую имя пакета npm. Пакет dotenv используется для считывания переменных среды из файла .env во время локальной разработки.

    npm install mongodb dotenv
    
  3. Чтобы запустить приложение, перейдите в каталог приложения и запустите его с помощью терминала.

    node index.js
    

Подключение с собственным драйвером MongoDB в Azure Cosmos DB для MongoDB

Чтобы подключиться с помощью собственного драйвера MongoDB к Azure Cosmos DB, создайте экземпляр класса MongoClient. Этот класс является начальной точкой для выполнения всех операций с базами данных.

У наиболее распространенного конструктора для MongoClient два параметра:

Параметр Пример значения Description
url Переменная среды COSMOS_CONNECTION_STRING. API для MongoDB строка подключения использовать для всех запросов
options {ssl: true, tls: true, } Параметры MongoDB для подключения.

Сведения о проблемах подключения см. в руководстве по устранению неполадок.

Получение имени ресурса

  1. Создайте переменную оболочки для resourceGroupName.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos"
    
  2. Используйте команду az cosmosdb list, чтобы получить имя первой учетной записи Azure Cosmos DB в группе ресурсов и сохранить его в переменной оболочки accountName.

    # Retrieve most recently created account name
    accountName=$(
        az cosmosdb list \
            --resource-group $resourceGroupName \
            --query "[0].name" \
            --output tsv
    )
    

Получить строку подключения

  1. Найдите API для MongoDB строка подключения из списка строка подключения для учетной записи с az cosmosdb keys list помощью команды.

    az cosmosdb keys list --type connection-strings \
        --resource-group $resourceGroupName \
        --name $accountName 
    
  2. Скопируйте значения PRIMARY KEY (первичный ключ). Эти учетные данные понадобятся позже.

Настройка переменных среды

Чтобы использовать значения CONNECTION STRING в коде, задайте это значение в локальной среде, в которой запущено приложение. Чтобы задать переменную среды, используйте предпочтительный терминал для выполнения следующих команд:

$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"

Создание MongoClient с помощью строки подключения

  1. Добавьте зависимости для ссылки на пакеты npm для MongoDB и dotenv.

    // Read .env file and set environment variables
    require('dotenv').config();
    
    // Use official mongodb driver to connect to the server
    const { MongoClient } = require('mongodb');
    
  2. Определите новый экземпляр класса MongoClient с помощью конструктора и process.env., чтобы использовать строку подключения.

    // New instance of MongoClient with connection string
    // for Cosmos DB
    const url = process.env.COSMOS_CONNECTION_STRING;
    const client = new MongoClient(url);
    
    // connect to the server
    await client.connect();
    
    // client options
    const options = client.options
    console.log(`Options:\n${Object.keys(options).map(key => `\t${key}: ${options[key]}\n`)}`);
    

Дополнительные сведения о различных способах создания экземпляра MongoClient см. в на странице по драйверу NodeJS для MongoDB.

Закрытие подключения MongoClient

Когда приложение завершится с подключением, не забудьте закрыть его. Вызов .close() должен выполняться после выполнения всех вызовов базы данных.

client.close()

Использование клиентских классов MongoDB с Azure Cosmos DB для API для MongoDB

Прежде чем приступить к созданию приложения, рассмотрим иерархию ресурсов в Azure Cosmos DB. У Azure Cosmos DB есть объектная модель, используемая для создания ресурсов и доступа к ним. Azure Cosmos DB создает ресурсы в иерархии, состоящей из учетных записей, баз данных, коллекций и документов.

Diagram of the Azure Cosmos DB DB hierarchy including accounts, databases, collections, and docs.

Иерархическая схема с учетной записью Azure Cosmos DB в верхней части. У учетной записи есть два дочерних узла базы данных. Один из узлов базы данных содержит два дочерних узла коллекции. Другой узел базы данных содержит один дочерний узел коллекции. Этот один узел коллекции содержит три дочерних узла документа.

Каждый тип ресурса представлен одним или несколькими связанными классами JavaScript. Ниже приведен список наиболее распространенных классов.

Класс Description
MongoClient Этот класс предоставляет логическое представление на стороне клиента для уровня API для MongoDB в Azure Cosmos DB. Этот клиентский объект позволяет настраивать и выполнять запросы к службе.
Db Этот класс является ссылкой на базу данных, которая может еще не существовать в службе. База данных проверяется на стороне сервера при попытке доступа к ней или выполнении операции с ней.
Collection Этот класс является ссылкой на коллекцию, которая может еще не существовать в службе. Коллекция проверяется на стороне сервера при попытке работы с ней.

Сведения об использовании каждого из этих классов для создания приложения приведены в следующих руководствах.

Руководство:

См. также

Следующие шаги

Теперь, когда вы подключились к учетной записи API для MongoDB, используйте следующее руководство для создания баз данных и управления ими.