Tenemos una aplicación Spring Boot (2.2.2) que usa mongodb. Como queremos implementarlo en AWS, debemos migrar a DocumentDB. Pero cuando migramos, las cosas que funcionaban en MongoDB ya no funcionan. Ver el siguiente código:
public int getCount(String collection, List<Bson> pipeline, MongoTemplate mongoTemplate) { List<Bson> newpipeline = new ArrayList<Bson>(); newpipeline.addAll(pipeline); String cntStr = "{$group:{_id:null, val:{'$sum':1}}}"; newpipeline.add(BasicDBObject.parse(cntStr)); MongoDatabase mongo = mongoTemplate.getDb(); int count = 0; try { count = mongo.getCollection(collection).aggregate(newpipeline).first().getInteger("val"); } catch (NullPointerException e) { } catch (Exception e) { e.printStackTrace(); } return count; }Esto funciona en mongodb, pero no en documentdb. Da un error como:
{"timestamp":"2021-03-29T08:29:58.101+0000","status":500,"error":"Internal Server Error","message":"Command failed with error 18537: 'Could not convert date to string: date component was outside the supported range of 0-9999: 10000' on server xxxx-manager-document-db.cn30hpxqos6b.eu-central-1.docdb.amazonaws.com:27017. The full response is {\"ok\": 0.0, \"operationTime\": {\"$timestamp\": {\"t\": 1617006598, \"i\": 1}}, \"code\": 18537, \"errmsg\": \"Could not convert date to string: date component was outside the supported range of 0-9999: 10000\"}","path":"/pmt/api/v1/pm/analytics/getKpiByDimension"}¿Es posible que algunas de las API del cursor no funcionen en documentDB?
Otra opción que tiene es instalar MongoDB en una instancia EC2, luego puede usar la API de MongoDB dentro de una aplicación Spring BOOT. Para saber cómo instalar MongoDB en EC2, consulte:
Instalar y configurar la edición comunitaria de MongoDB
Aquí hay un ejemplo de creación de una aplicación Spring BOOT que usa MongoDB para almacenar datos de la aplicación.
Crear el rastreador de elementos de la aplicación web MongoDB