sql >> Databasteknik >  >> NoSQL >> MongoDB

PyMongo höjer [errno 49] kan inte tilldela begärd adress efter ett stort antal frågor

Detta beror på att du använder PyMongo felaktigt. Du skapar en ny MongoClient för varje fråga, vilket kräver att du öppnar en ny socket för varje ny fråga. Detta besegrar PyMongos anslutningspoolning, och förutom att vara extremt långsam betyder det också att du öppnar och stänger sockets snabbare än din TCP-stack kan hänga med:du lämnar för många sockets i TIME_WAIT-läge så att du så småningom får slut på portar.

Lyckligtvis är korrigeringen enkel. Skapa en MongoClient och använd den genomgående:

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

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



  1. MongoDB varva ner flera arrayer

  2. Hur man ersätter befintliga dokument när man importerar en fil till MongoDB

  3. mongo db docker-bildautentisering misslyckades

  4. Hur skickar socket.io meddelanden över flera servrar?