sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan undgår man en undtagelse For tidligt nået slutningen af ​​streamen ved hjælp af mongoDB Java-driver 3.4+ eller 3.6+? (under indsættelse)

Valgmulighed #1

Fejlen blev løst af forbindelsesformatet (ved hjælp af parametrene maxIdleTimeMS , ssl og authSource ):

MongoClient mongoClient =MongoClients.create("mongodb://user:example @sqldat.com
; =5000"); 

Eller du kan konfigurere legitimationsoplysningerne programmatisk (ved hjælp af java-driver 3.6+ versioner):

admin - er databasen, hvor brugerne er defineret i Atlas;

bruger - er brugernavnet;

mypassword - er adgangskoden;

MongoCredential credential =MongoCredential.createCredential("bruger", "admin", "mypassword".toCharArray()); MongoClientSettings-indstillinger =MongoClientSettings.builder() .credential(credential) .retryWrites(true) .applyToConnectionPoolSettings(builder -> builder.maxConnectionIdleTime(5000, TimeUnit.MILLISECONDS)) -Selderapply(builder)Settingly(builder) (builder -> { builder.hosts(Arrays.asList( new ServerAddress("cluster0-shard-00-00-ox90k.mongodb.net", 27017), new ServerAddress("cluster0-shard-00-01-ox90k.mongodb .net", 27017), new ServerAddress("cluster0-shard-00-02-ox90k.mongodb.net", 27017) )); builder.requiredReplicaSetName("Cluster0-shard-0"); }) .build(); MongoClient mongoClient =MongoClients.create(indstillinger); 

Mulighed #2

Desuden kan fejlen løses ved at ringe til mongodb.MongoClient.connect én gang, ikke hver anmodning. Prøv at omstrukturere din kode til opkaldsforbindelse én gang i stedet for hver gang under indsættelse af specifikt dokument. I dette tilfælde kan du undgå yderligere parametre fra mulighed #1.

Lige nok:

MongoDB+SRV:// Admin: mongodb+srv:// a> /test?retryWrites=true&w=majority

Særlig tak for hjælpen mongoDB-understøttelse .



  1. passport.js - godkend brugere fra MongoDB med passport-local

  2. Brug af positionsoperator med to-niveau hierarkier i Mongo

  3. Hvordan tæller man produktgruppe klogt med feltnavn i Monogodb?

  4. videregivelse af data mellem server og klient (node.js + mongodb)