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

MongoDBアップデートディープアレイ

    残念ながら、現時点では、更新ごとに1つの「$」位置しか使用できません。これにより、ドキュメントの例のように、更新が単一の埋め込み配列に制限されます。http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator(投稿から、すでにこれを見つけましたが、この投稿を読んでいる他のユーザーのためにリンクを含めました。)

    更新するには、次の3つのうち2つの位置を知る必要があります。「バンド」配列内のバンドの位置、アルバム配列内のアルバムの位置、またはトラックの位置「tracks」配列内。

    この機能に対する機能リクエストがあり、バージョン2.3.0で予定されています(ただし、これは変更される可能性があります)。
    https://jira.mongodb.org/browse/SERVER-831 "Positional Operator Matchingネストされた配列」

    当面は、3つの配列のうち2つでサブドキュメントの位置を知る必要があります。

    db.music.update({genre : "Grunge", "bands.name" : "Nirvana"}, {$set:{"bands.$.albums.0.tracks.0.name":"Smells Like Teen Spirit!"}})
    
    db.music.update({genre : "Grunge", "bands.0.albums.name" : "Nevermind"}, {$set:{"bands.0.albums.$.tracks.0.name":"Smells Like Teen Spirit!"}})
    

    または

    db.music.update({genre : "Grunge", "bands.0.albums.0.tracks.order" : 1}, {$set:{"bands.0.albums.0.tracks.$.name":"Smells Like Teen Spirit!"}})
    



    1. Scrapy-redisプログラムは自動的に閉じません

    2. SQL COALESCE()の説明

    3. Redisからセッションを保存および取得する方法

    4. 集約フレームワークはインデックスを使用できません