Поделиться через


MongoDB (предварительная версия)

MongoDB — это универсальная платформа данных, распределенная, документная платформа, которую любят разработчики и используют для выполнения различных рабочих нагрузок. Теперь вы можете исследовать различные конечные точки и выполнять операции CRUD и агрегаты в коллекции с помощью соединителя MongoDB.

Этот соединитель доступен в следующих продуктах и регионах:

Услуга Class Регионы
Copilot Studio Премия Все регионы Power Automate , кроме следующих:
     - Правительство США (GCC)
     - Правительство США (GCC High)
     — Облако Китая, управляемое 21Vianet
     - Министерство обороны США (DoD)
Логические приложения Стандарт Все регионы Logic Apps , кроме следующих:
     — Регионы Azure для государственных организаций
     — Регионы Azure Для Китая
     - Министерство обороны США (DoD)
Power Apps - Недоступно
Power Automate Премия Все регионы Power Automate , кроме следующих:
     - Правительство США (GCC)
     - Правительство США (GCC High)
     — Облако Китая, управляемое 21Vianet
     - Министерство обороны США (DoD)
Контакт
Имя Поддержка MongoDB
URL https://www.mongodb.com/community/forums/
Адрес электронной почты support-operations@mongodb.com
Метаданные соединителя
Publisher MongoDB Corp
Website https://www.mongodb.com
Политика конфиденциальности https://www.mongodb.com/legal/privacy-policy
Категории Данные

Соединитель MongoDB предоставляет простой способ подключения к MongoDB Atlas через API данных, размещенные с помощью функции Azure в клиенте для чтения и записи данных в коллекции MongoDB Atlas. Соединитель MongoDB упрощает выполнение операций CRUD и агрегатов данных в минутах и позволяет запрашивать MongoDB для создания расширенных приложений и рабочих процессов в Power Apps, Power Automate и Logic Apps.

*** Обратите внимание, что MongoDB не рекомендует api Atlas Data с сентября 2025 г. и поэтому использует этот подход соединителя для настройки функции Azure и использования его URL-адресов и ключей API вместо ключей ATLAS в приложениях и потоках. ***

Предпосылки

  1. Настройка среды Atlas

Зарегистрируйтесь здесь для новой учетной записи Atlas. Выполните действия от 1 до 4 (создайте учетную запись Atlas, разверните бесплатный кластер, добавьте IP-адрес в список доступа к IP-адресам и создайте пользователя базы данных), чтобы настроить среду Atlas.

  1. Настройка функции Azure в качестве API данных Atlas Чтобы настроить функцию Azure, которая будет размещать код в качестве API-интерфейсов Atlas Data, у нас есть два варианта — 1. Использование GitHub Actions OR 2. Использование zip-развертывания

    Выберите метод действий GitHub, если вы можете вставить текущий репозиторий, можно включить действия GitHub в этом репозитории и добавить дополнительные API и предпочесть ci/CD или DevOps, настроенные из поля. Однако если вы ищете быстрый и простой способ развертывания и просто нуждаетесь в функции Azure, настроенной для замены API-интерфейсов Atlas Data, перейдите к параметру развертывания Zip.

    Вариант 1. Настройка функции Azure с помощью действий GitHub

    a.Fork репозитория MongoDB. Обратите внимание на новый url-адрес вилки репозитория. Если действия GitHub не включены по умолчанию, включите их, перейдя в раздел "Параметры" —> "Действия".> Общие в вилке репозитория и выберите один из вариантов разрешенных действий или повторно используемых рабочих процессов.

    b.Нажмите приведенную ниже кнопку "Развернуть в Azure ", чтобы функция Azure была создана в клиенте.

    Развертывание в Azure

    c. Выберите или создайте группу ресурсов, содержащую функцию Azure и связанные с ней компоненты (план службы приложений, учетную запись хранения и App Insights). Имя функции и номер SKU можно сохранить в качестве значений по умолчанию или изменить, если вы хотите соблюдать определенные стандарты. Рекомендуется добавить имя кластера в имя приложения-функции, чтобы его уникально и легко определить.

    Укажите URL-адрес подключения MongoDB для кластера, для которого будет выполняться эта функция Azure. Эта строка подключения будет сохранена в виде переменной Environmnet. Укажите url-адрес вилки репозитория в качестве репозитория GitHub. Нажмите кнопку "Создать ", и она создаст функцию Azure с соответствующими ресурсами. Обратите внимание, что на этом этапе создается приложение-функция, переменные env заполняются, но фактическая функция еще не развернута в приложении-функции.

    d. Чтобы выполнить действия GitHub из репозитория и развернуть функцию, получите профиль публикации из созданной функции Azure.

    Он скачивается, открывает его в текстовом редакторе и копирует все его содержимое.

    GetPublishProfile.png

    д) Перейдите в репозиторий GitHub — параметры —>> секреты и переменные .> Действия щелкните новый секрет respository и скопируйте все значение в профиле публикации в новый секрет с именем "AZUREAPPSERVICE_PUBLISHPROFILE".

    f. Внесите незначительные изменения в README и фиксации изменений , чтобы вызвать действия GitHub, которые будут развертывать код Python в функции Azure в приложении-функции. Теперь вы увидите функцию, доступную в приложении Functon, и код в function_app.py развернут.

    ж. Вкладка "Действия GitHub" в репозитории GitHub отобразит шаги в развертывании (включая установку зависимостей) и результат каждого шага.

    Вариант 2. Настройка функции Azure с помощью ZipDeploy

    a. Нажмите следующую кнопку "Развернуть в Azure ", чтобы функция Azure была создана в клиенте.

    Развертывание в Azure

    б. Выберите или создайте группу ресурсов, содержащую функцию Azure и связанные с ней компоненты (план службы приложений, учетную запись хранения и App Insights). Имя функции и номер SKU можно сохранить в качестве значений по умолчанию или изменить, если вы хотите соблюдать определенные стандарты. Мы повторно добавили имя кластера в имя приложения-функции, чтобы его уникально и легко определить.

    ** DONOT измените ** пакетUrl, так как это URL-адрес SAS учетной записи хранения с zip-файлом, который должен быть развернут. Выберите "Создать " и создаст приложение-функцию Azure, разверните функцию Azure вместе с связанными ресурсами.

Получение учетных данных

Получение ключа BaseUrl и API

a. В приложении-функции выберите функцию и нажмите кнопку "Получить URL-адрес функции ". Скопируйте URL-адрес функции с начала до "/action", как показано на снимке экрана ниже. Это базовый URL-адрес , который вы будете использовать для вызова любого из API MONgoDB CRUD/Aggregate.

GetFunctionUrl.png

б. Перейдите к приложению-функции —> в разделе "Функции —> ключи приложения", захватите ключ API _master или ключ API по умолчанию для функции Azure. Это ключ API , который будет использоваться вместе с базовым URL-адресом для создания подключения MongoDB для вызова любого из API CRUD/ Агрегатных API MongoDB.

Начало работы с соединителем

  1. После завершения предварительных требований перейдите к PowerAutomate —> подключения. Щелкните "Создать подключение" и найдите MongoDB в строке поиска в правом верхнем углу, как показано ниже на снимке экрана.

MongoDBPremiumConnector.png

  1. Щелкните подключение MongoDB и увидите следующее всплывающее окно, которое запрашивает ввод ключа API и базового URL-адреса.

MongoDBConnection.png

  1. В полях "Базовый URL-адрес" и "Ключ API" введите значения, полученные из раздела " Получение учетных данных " выше

Используйте один из 8 API данных для любых операций CRUD в кластере MongoDB Atlas. Для сложных запросов используйте API "Запуск конвейера агрегирования" для использования этапов агрегирования для массажа выходных данных из одного этапа в другой. Гибкость и динамизм MongoDB позволяет создавать расширенные приложения и автоматизировать все временные процессы. Вы продолжаете улучшать приложения, добавляя дополнительные функции и поля в ту же коллекцию.

Известные проблемы и ограничения

Так как MongoDB не применяет схему, текущий соединитель можно использовать только с Power Automate и Logic Apps, который поддерживает динамическую схему для ответа API, который затем можно проанализировать с помощью конструкций "Анализ JSON". Его можно использовать в Power Apps, вызвав поток Power Automate для каждого взаимодействия MongoDB. Вы также можете продолжать использовать сертифицированный соединитель MongoDB из репозитория Microsoft Github в качестве пользовательского соединителя, чтобы использовать его в Power Apps непосредственно для настройки схемы ответа в соответствии со схемой коллекции MongoDB.

Ограничения, применимые к операциям с данными MongoDB, применяются также к соединителю MongoDB. См. эту ссылку , чтобы узнать больше о этапах агрегирования, которые не поддерживаются в контексте API данных пользователя.

Следуйте этой ссылке на известные ограничения с такими функциями Azure, как время ожидания и другие ограничения служб для каждого плана ресурсов.

Распространенные ошибки и средства устранения неполадок

Типичные коды ответов API применяются здесь также. Все ошибки 4XX указывают на проблему с запросом от клиента. Убедитесь, что источник данных, база данных, коллекция предоставляется в допустимом формате JSON. Примеры см. в этой коллекции Postman . Для ошибок 5XX убедитесь, что функция Azure запущена и выполняется, и проверьте ее трассировку для дальнейшего изучения.

Создание подключения

Соединитель поддерживает следующие типы проверки подлинности:

По умолчанию Параметры для создания подключения. Все регионы Недоступен для совместного использования

По умолчанию

Применимо: все регионы

Параметры для создания подключения.

Это недоступно для общего доступа. Если приложение power предоставляется другому пользователю, пользователю будет предложено явно создать новое подключение.

Имя Тип Description Обязательно
Ключ API securestring Ключ API для этого API True
BaseUrl струна URL-адрес функции Azure (пример:https://mdb-dataapi-repl.azurewebsites.net/api/mdb_dataapi) True

Ограничения регулирования

Имя Вызовы Период обновления
Вызовы API для каждого подключения 100 60 секунд

Действия

Вставка документа

С помощью конечной точки insertOne можно добавить документ в коллекцию. Используйте свойство документа в тексте запроса, чтобы указать документ, который должен быть создан.

Вставка нескольких документов

Вы можете добавить несколько документов одновременно с помощью конечной точки insertMany. В этом случае необходимо использовать свойство documents в тексте запроса, чтобы указать массив документов, которые необходимо вставить в коллекцию.

Запуск конвейера агрегирования

Вы даже можете запускать конвейеры агрегирования с помощью API данных. Для этого используйте агрегатную конечную точку и укажите конвейер в поле конвейера текста запроса.

Обновление документа

Для обновления одной записи можно использовать конечную точку updateOne. Используйте свойство фильтра в тексте запроса, чтобы указать критерии поиска. Если несколько документов соответствуют критериям, будет возвращено только первое совпадение. Затем используйте поле обновления, чтобы указать, что необходимо обновить. Для обновления документов следует использовать один из операторов обновления.

Обновление нескольких документов

С помощью updateMany можно обновить все документы, соответствующие определенному фильтру, указанному в тексте запроса. Чтобы обновить документы, используйте один из операторов обновления в поле обновления.

Поиск документа

Используя конечную точку findOne, вы получите один документ из коллекции. Используйте свойство фильтра в тексте запроса, чтобы указать критерии поиска. Если несколько документов соответствуют критериям, будет возвращено только первое совпадение.

Поиск нескольких документов

Используя конечную точку поиска, можно одновременно получить несколько документов. Используйте свойство фильтра в тексте запроса, чтобы указать критерии, по которым следует фильтровать. При передаче пустого объекта будут возвращены все документы в коллекции.

Удаление документа

Чтобы удалить один документ, используйте конечную точку deleteOne. Используйте свойство фильтра в тексте запроса, чтобы указать критерии поиска. Если несколько документов соответствуют критериям, будет удалено только первое совпадение.

Удаление многих документов

Удалить несколько документов можно одновременно с помощью deleteMany. Используйте свойство фильтра, чтобы указать, какие документы нужно удалить. Убедитесь, что использование этого API без фильтров приведет к удалению всех документов в коллекции. Используйте deletemany с осторожностью.

Вставка документа

С помощью конечной точки insertOne можно добавить документ в коллекцию. Используйте свойство документа в тексте запроса, чтобы указать документ, который должен быть создан.

Параметры

Имя Ключ Обязательно Тип Описание
Имя кластера MongoDB
dataSource True string

Имя кластера.

Имя базы данных MongoDB
database True string

Имя базы данных.

Имя коллекции MongoDB
collection True string

Имя коллекции.

документ
document True object

Документ EJSON для вставки в коллекцию.

Возвращаемое значение

Имя Путь Тип Описание
insertedId
insertedId string

insertedId

Вставка нескольких документов

Вы можете добавить несколько документов одновременно с помощью конечной точки insertMany. В этом случае необходимо использовать свойство documents в тексте запроса, чтобы указать массив документов, которые необходимо вставить в коллекцию.

Параметры

Имя Ключ Обязательно Тип Описание
Имя кластера MongoDB
dataSource True string

Имя кластера.

Имя базы данных MongoDB
database True string

Имя базы данных.

Имя коллекции MongoDB
collection True string

Имя коллекции.

Документы
documents object

items

Возвращаемое значение

Имя Путь Тип Описание
insertedIds
insertedIds array of string

insertedIds

Запуск конвейера агрегирования

Вы даже можете запускать конвейеры агрегирования с помощью API данных. Для этого используйте агрегатную конечную точку и укажите конвейер в поле конвейера текста запроса.

Параметры

Имя Ключ Обязательно Тип Описание
Имя кластера MongoDB
dataSource True string

Имя кластера.

Имя базы данных MongoDB
database True string

Имя базы данных.

Имя коллекции MongoDB
collection True string

Имя коллекции.

pipeline
pipeline object

items

Возвращаемое значение

Имя Путь Тип Описание
Документы
documents array of object

Документы

items
documents object

Обновление документа

Для обновления одной записи можно использовать конечную точку updateOne. Используйте свойство фильтра в тексте запроса, чтобы указать критерии поиска. Если несколько документов соответствуют критериям, будет возвращено только первое совпадение. Затем используйте поле обновления, чтобы указать, что необходимо обновить. Для обновления документов следует использовать один из операторов обновления.

Параметры

Имя Ключ Обязательно Тип Описание
Имя кластера MongoDB
dataSource True string

Имя кластера.

Имя базы данных MongoDB
database True string

Имя базы данных.

Имя коллекции MongoDB
collection True string

Имя коллекции.

фильтр
filter True object

Действие MongoDB Query Filter.The UpdateOne изменяет первый документ в коллекции, которая соответствует этому фильтру.

update
update True object

Выражение обновления MongoDB, указывающее, как изменить соответствующий документ.

upsert
upsert boolean

Флаг Upsert применяется только в том случае, если документы не соответствуют указанному фильтру. Если значение true, действие updateOne вставляет новый документ, соответствующий фильтру с указанным обновлением, примененным к нему.

Возвращаемое значение

Имя Путь Тип Описание
matchedCount
matchedCount integer

сопоставленная учетная запись

modifiedCount
modifiedCount integer

измененная учетная запись

Обновление нескольких документов

С помощью updateMany можно обновить все документы, соответствующие определенному фильтру, указанному в тексте запроса. Чтобы обновить документы, используйте один из операторов обновления в поле обновления.

Параметры

Имя Ключ Обязательно Тип Описание
Имя кластера MongoDB
dataSource True string

Имя кластера.

Имя базы данных MongoDB
database True string

Имя базы данных.

Имя коллекции MongoDB
collection True string

Имя коллекции.

фильтр
filter True object

Фильтр запросов MongoDB. Действие updateMany изменяет все документы в коллекции, соответствующей этому фильтру.

update
update True object

Выражение обновления MongoDB, указывающее, как изменять соответствующие документы.

upsert
upsert boolean

Флаг upsert применяется только в том случае, если документы не соответствуют указанному фильтру. Если значение true, действие updateMany вставляет новый документ, соответствующий фильтру с указанным обновлением, примененным к нему.

Возвращаемое значение

Имя Путь Тип Описание
matchedCount
matchedCount integer

сопоставленная учетная запись

modifiedCount
modifiedCount integer

измененная учетная запись

Поиск документа

Используя конечную точку findOne, вы получите один документ из коллекции. Используйте свойство фильтра в тексте запроса, чтобы указать критерии поиска. Если несколько документов соответствуют критериям, будет возвращено только первое совпадение.

Параметры

Имя Ключ Обязательно Тип Описание
Имя кластера MongoDB
dataSource True string

Имя кластера.

Имя базы данных MongoDB
database True string

Имя базы данных.

Имя коллекции MongoDB
collection True string

Имя коллекции.

фильтр
filter object

Фильтр запросов MongoDB. Действие findOne возвращает первый документ в коллекции, которая соответствует этому фильтру.

projection
projection object

Проекция запросов MongoDB. В зависимости от проекции возвращаемый документ либо опустит определенные поля, либо включает только указанные поля или значения.

Возвращаемое значение

Имя Путь Тип Описание
документ
document object

документ

Поиск нескольких документов

Используя конечную точку поиска, можно одновременно получить несколько документов. Используйте свойство фильтра в тексте запроса, чтобы указать критерии, по которым следует фильтровать. При передаче пустого объекта будут возвращены все документы в коллекции.

Параметры

Имя Ключ Обязательно Тип Описание
Имя кластера MongoDB
dataSource True string

Имя кластера.

Имя базы данных MongoDB
database True string

Имя базы данных.

Имя коллекции MongoDB
collection True string

Имя коллекции.

фильтр
filter object

Фильтр запросов MongoDB. Действие поиска возвращает документы в коллекции, соответствующей этому фильтру. Если фильтр не указан, действие соответствует всему документу коллекции.

projection
projection object

Проекция запроса MongoDB. В зависимости от проекции возвращаемые документы либо опустили определенные поля, либо содержат только указанные поля и значения.

sort
sort object

Выражение сортировки MongoDB. Соответствующие документы возвращаются в порядке возрастания или убывания полей, указанных в выражении.

limit
limit integer

Максимальное количество сопоставленных документов, включаемых в возвращаемый результирующий набор. Каждый запрос может возвращать до 50 000 документов.

skip
skip integer

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

Возвращаемое значение

Имя Путь Тип Описание
Документы
documents array of object

Документы

items
documents object

Удаление документа

Чтобы удалить один документ, используйте конечную точку deleteOne. Используйте свойство фильтра в тексте запроса, чтобы указать критерии поиска. Если несколько документов соответствуют критериям, будет удалено только первое совпадение.

Параметры

Имя Ключ Обязательно Тип Описание
Имя кластера MongoDB
dataSource True string

Имя кластера.

Имя базы данных MongoDB
database True string

Имя базы данных.

Имя коллекции MongoDB
collection True string

Имя коллекции.

фильтр
filter True object

Фильтр запросов MongoDB. Действие deleteOne удаляет первый документ в коллекции, которая соответствует этому фильтру.

Возвращаемое значение

Имя Путь Тип Описание
deletedCount
deletedCount integer

deletedcount

Удаление многих документов

Удалить несколько документов можно одновременно с помощью deleteMany. Используйте свойство фильтра, чтобы указать, какие документы нужно удалить. Убедитесь, что использование этого API без фильтров приведет к удалению всех документов в коллекции. Используйте deletemany с осторожностью.

Параметры

Имя Ключ Обязательно Тип Описание
Имя кластера MongoDB
dataSource True string

Имя кластера.

Имя базы данных MongoDB
database True string

Имя базы данных.

Имя коллекции MongoDB
collection True string

Имя коллекции.

фильтр
filter True object

Фильтр запросов MongoDB. Действие deleteMany удаляет все документы в коллекции, соответствующие этому фильтру.

Возвращаемое значение

Имя Путь Тип Описание
deletedCount
deletedCount integer

deletedCount