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

ネストされた配列のフィールドを更新するMongoDB

    この問題は解決されました。オブジェクトのネストされた配列内のフィールドを更新する機能は、MongoDB 3.6以降のバージョンで使用できます。位置演算子(すべておよび識別子付き)をここで確認してください。

    //Update all docs in collection matching photo name "play" to "play photo"
    db.collectioname.update(
        {},
        { $set: { "albums.$[].photos.$[photo_field].name": "play photo" } },
        { arrayFilters: [  {"photo_field.name": "play"} ], multi: true}
    );
    
    //Update this specific doc given in question matching photo name "play" to "play photo"
    db.collectioname.update(
        {"_id" : ObjectId("4f41a5c7c32810e404000000")},
        { $set: { "albums.$[].photos.$[photo_field].name": "play photo" } },
        { arrayFilters: [  {"photo_field.name": "play"} ]}
    );
    

    これは、MongoDB3.6以降にここに来る人々の助けのためです



    1. Javaを使用したmongodbの自動インクリメントシーケンス

    2. いつ実際に使用するのか、Redis lua?

    3. Redisのシリアル化と逆シリアル化

    4. MongoDB:$geoWithin演算子を使用して正しい結果が得られない