como dice rfernandez los componentes que desarrollan en DevArt son buenisimos, funcionan superbien y faciles de implementar (pero son de pago y precisamente baratos tampoco)
Dado que usas Delphi 10.3 Rio y FireDAC, pero necesitas conectarte a MongoDB en versiones más recientes (mayores a 5.0), aquí hay algunas opciones viables sin necesidad de actualizar toda la licencia de Delphi Enterprise:
1. Verificar si se puede actualizar solo FireDAC
FireDAC viene incluido en Delphi, pero Embarcadero no ofrece FireDAC como una compra independiente. Normalmente, las mejoras y soporte para nuevas versiones de bases de datos vienen con nuevas versiones de Delphi. No se puede actualizar FireDAC sin actualizar Delphi.
⚠️ Conclusión: No es una opción viable.
2. Usar una Biblioteca Externa para Conectarse a MongoDB
Dado que FireDAC en Delphi 10.3 no soporta MongoDB 6+, otra opción es usar una biblioteca de terceros que funcione con Delphi 10.3. Algunas opciones:
✅ a) SynMongoDB (parte de Synopse mORMot Framework)
Librería gratuita y de código abierto.
Compatible con MongoDB 6+ y versiones anteriores.
Permite trabajar con BSON y JSON.
No requiere FireDAC, es una conexión directa.
Descarga:
https://github.com/synopse/mORMot2
✅ b) UniDAC de Devart
Producto comercial con soporte para MongoDB 6+.
Funciona con Delphi 10.3 Rio.
Compatible con FireDAC y otros motores SQL.
Enlace:
https://www.devart.com/unidac/mongodb.html
Costo Aproximado: 299 USD (mucho más barato que una nueva licencia de Delphi).
⚠️ Conclusión: UniDAC es una opción comercial más accesible que actualizar Delphi. SynMongoDB es una alternativa gratuita si prefieres trabajar con código abierto.
3. Usar la API de MongoDB con HTTP/REST
Si solo necesitas consultas básicas y no una integración completa, puedes conectarte a MongoDB usando su API HTTP/REST en lugar de un driver nativo.
Ejemplo en Delphi usando TNetHTTPClient:
Código Delphi
[-]
uses
System.SysUtils, System.JSON, System.Net.HttpClient, System.Net.URLClient;
procedure ConsultarMongo;
var
HTTP: TNetHTTPClient;
Respuesta: IHTTPResponse;
JsonObj: TJSONObject;
begin
HTTP := TNetHTTPClient.Create(nil);
try
Respuesta := HTTP.Get('http://tu-servidor-mongodb:27017/dbname/coleccion');
JsonObj := TJSONObject.ParseJSONValue(Respuesta.ContentAsString) as TJSONObject;
Writeln(JsonObj.ToString);
finally
HTTP.Free;
end;
end;
Conclusión: Es útil si solo necesitas recuperar información, pero no es una solución ideal para un sistema grande.
✅ Recomendación Final
Si buscas una solución comercial y confiable, UniDAC de Devart es la mejor opción.
Si prefieres una alternativa gratuita y de código abierto, usa SynMongoDB (mORMot).