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

Mongo-PHP - MongoCursor undtagelse med MongoDB PHP Driver v1.6

Dette kan være relateret til en fejl, der blev introduceret i 1.6.0 vedrørende iteration med hasNext() og getNext() :PHP-1382 . En rettelse er siden blevet flettet til v1.6 filial og skulle udgives senere i denne uge som 1.6.1.

Når det er sagt, fejlen vedrørende hasNext() var faktisk, at det sidste dokument i resultatsættet ville blive savnet under iteration. Hvis jeg kører dit originale script mod 1.6.0, indeholder arrayet en null værdi som dets sidste element. Med rettelsen på plads vil arrayet indeholde alle dokumenter som forventet. Jeg kan ikke gengive den undtagelse, du ser, med nogen af ​​versionerne.

Denne undtagelse er faktisk smidt fra en intern kontrol af C-datastrukturerne for at sikre, at markørobjektet er korrekt forbundet med en MongoClient og socket-forbindelse. Se MONGO_CHECK_INITIALIZED() makrokald i denne fil . Næsten alle markørmetoder kontrollerer, at en MongoClient er tilknyttet, men hasNext() er unik ved, at den også tjekker for socket-objektet (jeg tror, ​​at andre metoder bare antager, at en markør med en MongoClient også har en socket). Hvis denne undtagelse virkelig er reproducerbar for dig, og du er villig til at foretage en fejlretning med udvidelsen, ville jeg være meget interesseret i at vide, hvilken af ​​de to kontroller, der giver fejlen.

Som en sidebemærkning bør du også angive "replicaSet" mulighed ved konstruktion af MongoClient. Dette skal have replikasætnavnet, som sikrer, at driveren korrekt kan ignorere forbindelser til værter, der ikke er medlem af det tilsigtede replikasæt.



  1. Spring Data Reactive Repositories med MongoDB

  2. Mongoose-opdatering uden tilbagekald

  3. TypeError:Stien skal være en streng eller buffer MEAN-stak

  4. Designmønstre til dataadgangslag