sql >> Database >  >> NoSQL >> MongoDB

PyMongo verhoogt [errno 49] kan het gevraagde adres niet toewijzen na een groot aantal vragen

Dit komt omdat u PyMongo verkeerd gebruikt. U maakt voor elke query een nieuwe MongoClient, waarvoor u voor elke nieuwe query een nieuwe socket moet openen. Dit verslaat PyMongo's pooling van verbindingen, en behalve dat het extreem traag is, betekent het ook dat je sockets sneller opent en sluit dan je TCP-stack kan bijhouden:je laat te veel sockets in de TIME_WAIT-status staan, zodat je uiteindelijk geen poorten meer hebt.

Gelukkig is de oplossing eenvoudig. Maak één MongoClient en gebruik deze overal:

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

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



  1. Hoe een subdocument in mangoest vullen nadat het is gemaakt?

  2. MongoDB $pull gebruiken om documenten binnen een array te verwijderen

  3. Mongo-authenticatie binnen Docker

  4. ClusterControl op AWS implementeren om uw clouddatabase te beheren