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 в приложениях и потоках. ***
Предпосылки
- Настройка среды Atlas
Зарегистрируйтесь здесь для новой учетной записи Atlas. Выполните действия от 1 до 4 (создайте учетную запись Atlas, разверните бесплатный кластер, добавьте IP-адрес в список доступа к IP-адресам и создайте пользователя базы данных), чтобы настроить среду Atlas.
Настройка функции 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 была создана в клиенте.
c. Выберите или создайте группу ресурсов, содержащую функцию Azure и связанные с ней компоненты (план службы приложений, учетную запись хранения и App Insights). Имя функции и номер SKU можно сохранить в качестве значений по умолчанию или изменить, если вы хотите соблюдать определенные стандарты. Рекомендуется добавить имя кластера в имя приложения-функции, чтобы его уникально и легко определить.
Укажите URL-адрес подключения MongoDB для кластера, для которого будет выполняться эта функция Azure. Эта строка подключения будет сохранена в виде переменной Environmnet. Укажите url-адрес вилки репозитория в качестве репозитория GitHub. Нажмите кнопку "Создать ", и она создаст функцию Azure с соответствующими ресурсами. Обратите внимание, что на этом этапе создается приложение-функция, переменные env заполняются, но фактическая функция еще не развернута в приложении-функции.
d. Чтобы выполнить действия GitHub из репозитория и развернуть функцию, получите профиль публикации из созданной функции Azure.
Он скачивается, открывает его в текстовом редакторе и копирует все его содержимое.
д) Перейдите в репозиторий GitHub — параметры —>> секреты и переменные .> Действия щелкните новый секрет respository и скопируйте все значение в профиле публикации в новый секрет с именем "AZUREAPPSERVICE_PUBLISHPROFILE".
f. Внесите незначительные изменения в README и фиксации изменений , чтобы вызвать действия GitHub, которые будут развертывать код Python в функции Azure в приложении-функции. Теперь вы увидите функцию, доступную в приложении Functon, и код в function_app.py развернут.
ж. Вкладка "Действия GitHub" в репозитории GitHub отобразит шаги в развертывании (включая установку зависимостей) и результат каждого шага.
Вариант 2. Настройка функции Azure с помощью ZipDeploy
a. Нажмите следующую кнопку "Развернуть в Azure ", чтобы функция Azure была создана в клиенте.
б. Выберите или создайте группу ресурсов, содержащую функцию Azure и связанные с ней компоненты (план службы приложений, учетную запись хранения и App Insights). Имя функции и номер SKU можно сохранить в качестве значений по умолчанию или изменить, если вы хотите соблюдать определенные стандарты. Мы повторно добавили имя кластера в имя приложения-функции, чтобы его уникально и легко определить.
** DONOT измените ** пакетUrl, так как это URL-адрес SAS учетной записи хранения с zip-файлом, который должен быть развернут. Выберите "Создать " и создаст приложение-функцию Azure, разверните функцию Azure вместе с связанными ресурсами.
Получение учетных данных
Получение ключа BaseUrl и API
a. В приложении-функции выберите функцию и нажмите кнопку "Получить URL-адрес функции ". Скопируйте URL-адрес функции с начала до "/action", как показано на снимке экрана ниже. Это базовый URL-адрес , который вы будете использовать для вызова любого из API MONgoDB CRUD/Aggregate.
б. Перейдите к приложению-функции —> в разделе "Функции —> ключи приложения", захватите ключ API _master или ключ API по умолчанию для функции Azure. Это ключ API , который будет использоваться вместе с базовым URL-адресом для создания подключения MongoDB для вызова любого из API CRUD/ Агрегатных API MongoDB.
Начало работы с соединителем
- После завершения предварительных требований перейдите к PowerAutomate —> подключения. Щелкните "Создать подключение" и найдите MongoDB в строке поиска в правом верхнем углу, как показано ниже на снимке экрана.
- Щелкните подключение MongoDB и увидите следующее всплывающее окно, которое запрашивает ввод ключа API и базового URL-адреса.
- В полях "Базовый 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 |