unofficial MongoDB Connector for OutSystems solves critical challenges when working with modern databases:
🔥 Key Features That Matter:✅ Full CRUD Operations - Create, read, update, delete documents using simple JSON inputs✅ Aggregation Framework - Run complex data pipelines (grouping, filtering, transformations) directly from ODC✅ Enterprise Security - TLS/SSL connections + configurable connection pooling✅ Performance Insights - Get collection stats, index details, and query explanations✅ ODC-Ready - 100% stateless architecture following OutSystems best practices
💡 Solving Problems:
Saves 60+ Hours of building/maintaining basic MongoDB ops
Eliminates Connection Headaches with built-in TLS and smart pooling
Prevents Data Leaks through strict input validation and error masking
Scales Seamlessly with pagination and optimized aggregation
# 📦 MongoDB Conector ODC – Changelog
## 2025-05-20
### 🚀 Adicionado
- Suporte completo a transações MongoDB com controle via `sessionId`.
- Nova estrutura de gerenciamento `MongoTransactionManager` com cache seguro de sessões.
- Expiração automática de sessões inativas após 5 minutos (TTL configurado internamente).
- Métodos auxiliares públicos:
- `GetOrCreateSession`
- `CommitTransaction`
- `AbortTransaction`
### ➕ Novas ações expostas no conector (`IMongoDB.cs`)
- `CommitTransaction(MongoConfig config, string sessionId)`
- `AbortTransaction(MongoConfig config, string sessionId)`
### ✨ Nova funcionalidade: Bulk Insert Documents
- Novo método `BulkInsertDocuments(MongoConfig config, string documentsJson, int batchSize, string? sessionId = null)`
- Suporte a grandes volumes com divisão em lotes (`batchSize`)
- Validação robusta de JSON
- Suporte a transações via `sessionId`
- Tratamento de exceções detalhado com `MongoBulkWriteException`
- Usa `InsertManyOptions { IsOrdered = false }` para continuar em caso de erro parcial
### ✏️ Alterações em métodos existentes
- Todos os métodos CRUD (`CreateDocument`, `UpdateDocument`, etc.) agora suportam parâmetro opcional `sessionId`.
- Uso condicional de transações com base em:
- `sessionId` fornecido
- `AutoCommitTransactions = false` no `MongoConfig`
### 🧠 Observações
- Se `sessionId` não for fornecido, a operação será comitada automaticamente.
- O controle real de transações ocorre apenas quando `sessionId` é usado.
- SessionId é retornado nas respostas (`MongoDBConectorResponse`) quando aplicável.
---
BSD-3 license (https://opensource.org/licenses/BSD-3-Clause)