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

mongodbでサブドキュメントフィールドを動的に$setする方法は?

    これを理解しました。

    基本的に、次のように、クエリを実行する前に、更新しようとしているサブドキュメントの「プレースホルダー」オブジェクトを作成する必要があります。

    var projectID = 'JKS78678923SDFD678';
    
    var key = 'Three';
    var value = 'Three';
    
    var placeholder = {};
    placeholder['options.' + key] = value;
    
    Teams.findAndModify({
        query: {
            projectID:mongojs.ObjectId(projectID)
        },
        update: {
            $set : placeholder
        },
        upsert: true,
        multi: false,
        new: true
    },
    function(error, result, lastErrorObject){
    
        console.log(result);
    
    });
    

    これにより、既存のフィールドが更新され、フィールドと値のペアがまだ存在しない場合は作成されます。




    1. SyntaxError:無効なプロパティID-MongoDB

    2. ルックアップパイプライン:from valueが配列であり、ローカル値が検出される場合の`$match`ローカルフィールド`$in`配列

    3. 分岐したプロセス:ソケットの配送中の障害:パイプの破損

    4. mongoError:トポロジが破棄されました