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

mongodbで更新するドキュメントの数を制限する方法

    使用できるもの:

    db.collection.find().limit(NUMBER_OF_ITEMS_YOU_WANT_TO_UPDATE).forEach(
        function (e) {
            e.fieldToChange = "blah";
            ....
            db.collection.save(e);
        }
    );
    

    (forEachコードのクレジット:MongoDB:同じドキュメントのデータを使用してドキュメントを更新する)

    これにより、指定したエントリの数のみが変更されます。したがって、たとえば、「コレクション」内のエントリの半分だけに値1の「newField」というフィールドを追加する場合は、

    に入力できます。
    db.collection.find().limit(db.collection.count() / 2).forEach(
        function (e) {
            e.newField = 1;
            db.collection.save(e);
        }
    );
    

    次に、残りの半分にも「newField」を設定したいが、値が2の場合は、newFieldが存在しないという条件で更新を実行できます。

    db.collection.update( { newField : { $exists : false } }, { $set : { newField : 2 } }, {multi : true} );
    


    1. オブジェクトの配列でのMongoose/MongoDB$addToSet機能の使用

    2. nodejsでredisPUBLISH/ SUBSCRIBEを使用して、データ値が変更されたときにクライアントに通知するにはどうすればよいですか?

    3. Redisメモリ最適化チートシート

    4. マングースドキュメントインスタンスをコピー/クローンする最も簡単な方法は?