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

PyMongo rejser [errno 49] kan ikke tildele den anmodede adresse efter et stort antal forespørgsler

Dette skyldes, at du bruger PyMongo forkert. Du opretter en ny MongoClient for hver forespørgsel, som kræver, at du åbner en ny socket for hver ny forespørgsel. Dette besejrer PyMongos forbindelsespooling, og udover at være ekstremt langsom, betyder det også, at du åbner og lukker sockets hurtigere, end din TCP-stak kan følge med:du efterlader for mange sockets i TIME_WAIT-tilstand, så du til sidst løber tør for porte.

Heldigvis er rettelsen enkel. Opret én MongoClient og brug den hele vejen igennem:

conn = pymongo.MongoClient('mongodb://localhost:27017')
coll = conn.databases['race_results']

def _perform_queries(query):
    return coll.find(query).sort("date", -1)



  1. Overvågning af MongoDB-forekomster ved hjælp af MongoDB Monitoring Service (MMS)

  2. Mongo gruppe og push:skubbe alle felter

  3. Sådan sammenlignes 2 felter i Spring Data MongoDB ved hjælp af forespørgselsobjekt

  4. Forespørgsel indlejret i mongoDB