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

mongodbドキュメントのすべての配列要素を特定の値に変更するにはどうすればよいですか?

    これを行う最良の方法は、配列要素を照合し、位置 $で個別に更新することです。 Bulk()を使用する演算子 API。あなたは本当にあなたのqtyを吹き飛ばすべきではありません 配列。

    var bulk = db.mycollection.initializeOrderedBulkOp(),   
        count = 0;
    
    db.mycollection.find({ "code" : "efg" }).forEach(function(doc){ 
        var qty = doc["qty"]; 
        for (var idx = 0; idx < qty.length; idx++){ 
            bulk.find({ 
                "_id": doc._id, 
                "qty": { "$elemMatch": { "num": qty[idx]["num"]}}
            }).update({ "$set": { "qty.$.num": 0 }})
        }     
        count++;  
        if (count % 200 == 0) { 
            // Execute per 200 operations and re-init.
            bulk.execute(); 
            bulk = db.mycollection.initializeOrderedBulkOp(); 
        } 
    })
    
    // Clean up queues
    if (count % 200 != 0)
        bulk.execute(); 
    



    1. MongoDBSSPLライセンス変更の更新

    2. flashdbを使用したRedisキースペース通知

    3. Javaクライアントを使用したKey-Valueデータベース

    4. MongoDBerrno111への接続が拒否されました