sql >> データベース >  >> NoSQL >> MongoDB

PyMongoが発生[errno49]は、多数のクエリの後に要求されたアドレスを割り当てることができません

    これは、PyMongoを誤って使用しているためです。クエリごとに新しいMongoClientを作成しているため、新しいクエリごとに新しいソケットを開く必要があります。これにより、PyMongoの接続プールが無効になります。また、非常に遅いだけでなく、TCPスタックが維持できるよりも速くソケットを開閉できることも意味します。つまり、TIME_WAIT状態のソケットが多すぎるため、最終的にポートが不足します。

    幸いなことに、修正は簡単です。 1つのMongoClientを作成し、それを全体で使用します:

    conn = pymongo.MongoClient('mongodb://localhost:27017')
    coll = conn.databases['race_results']
    
    def _perform_queries(query):
        return coll.find(query).sort("date", -1)
    



    1. $ nearには、geojsonポイントが与えられた場合、geojsonポイントが必要です

    2. MongoClient v3.0を使用する場合、db.collectionは関数ではありません

    3. mongoシェル内のすべてのデータベースを一覧表示するにはどうすればよいですか?

    4. MongoDb 2.6.1エラー:17444-レガシーポイントが球面クエリの範囲外です