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

オブジェクトのネストされた配列からオブジェクトを削除するmongodb

    これを行うには、「ドキュメント」に一致するものを指定してから、.update()のクエリ式として必要な「shifts」配列エントリを指定します。 。次に、位置$を適用します オペレーター $pullと一致する配列インデックスの場合

    db.collection.update(
     { "_id": ObjectId("59180305c19dbaa4ecd9ee59"), "shifts.timeslot": "8:00 - NOON" },
     { "$pull": { "shifts.$.volunteers": { "fullname": "Mary Mack" } } }
    )
    

    ネストされた構造の「outer」配列と $pull 削除する配列エントリを識別するための独自のクエリ引数があります。

    ただし、「ネストされた配列」の使用には本当に注意する必要があります。 $pull このような操作は機能しますが、位置$ オペレーター 条件を満たす「最初の」要素にのみ一致します。したがって、複数のシフトでの「メアリーマック」の例は、最初に見つかった「シフト」配列エントリでのみ一致します。



    1. C#ドライバーを使用してMongoDBで複数のドキュメントを更新およびアップサートする方法

    2. マングースの自動インクリメントID

    3. 複数のmongodbホストに接続し、SpringBootで別のデータベースを使用して認証します

    4. npmパッケージを使用してデータベースから動的画像パスを含むPDFを生成およびダウンロードする方法