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

pymongoを使用してmongodbドキュメントを読んで更新するための最良の方法

    "Bulk OperationsAPI" が必要です MongoDBから。主にMongoDB2.6で導入されているため、現在アップグレードしていない場合はアップグレードする必要があります。

    bulk = db.coll.initialize_ordered_bulk_op()
    counter = 0
    
    for record in coll.find(snapshot=True):
        # now process in bulk
        # calc value first
        bulk.find({ '_id': record['_id'] }).update({ '$set': { 'field': newValue } })
        counter += 1
    
        if counter % 1000 == 0:
            bulk.execute()
            bulk = db.coll.initialize_ordered_bulk_op()
    
    if counter % 1000 != 0:
        bulk.execute()
    

    「すべての」リクエストをサーバーに送信するのではなく、1000リクエストごとに1回だけ送信する方がはるかに優れています。 「BulkAPI」は実際にはこれをいくらか整理しますが、実際にはこれをもう少しうまく「管理」し、アプリであまり多くのメモリを消費しないようにします。

    未来への道。使用してください。



    1. .NET Coreの依存性注入では、 `StackExchange.Redis.ConnectionMultiplexer`を`AddSingleton`または`AddScope`にする必要がありますか?

    2. 既存のmongo配列に新しい値を追加する

    3. Redisを使用した複合クエリ

    4. Redis:データベースのサイズ/キーのサイズを表示