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

ドキュメント内の別のフィールドの値でフィールドを更新します

    ここに良いニュースと悪いニュースがあります。

    悪いニュースは、AFAIKではupdate()を1回呼び出すだけでは実行できないことです。mongoはupdateで現在のオブジェクトを参照することをサポートしていません。

    良いニュースは、それを行う他の方法があるということです。 forEachループを実行できます:

    db.item.find(conditions...).snapshot().forEach( function (doc) {
      doc.field1 = doc.field2; 
      db.item.save(doc); 
    });
    

    forEachは、管理シェル('mongo'コマンド)で実行するか、特定のドライバーのいくつかのメソッドを介して実行できます(たとえば、PHPでは、ここで説明するように、mongodb.execute()で動作することが期待されます:http:/ /www.php.net/manual/en/mongodb.execute.php)



    1. MongoDBチェーンレプリケーションの基本

    2. 数値タイプフィールドのマングースfind()正規表現

    3. ネストされたドキュメントの合計MongoDB

    4. ノードredisクライアントで読み取りタイムアウトを設定するにはどうすればよいですか?