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

サブ配列内のMongodb更新操作

    $setを使用したくない ここですが、$pullドキュメントを参照 )、そしてあなたができた $elemMatchを使用します クエリをさらに指定する必要はありません。

    以下は、{"sender": "safari"}を使用してすべての友達追加通知をプルします {"username": "amitverma"}に一致するドキュメントのサブ配列から

    db.yourcollection.update({"username": "amitverma"}, { 
      $pull: {"notifications.notifications_add_friend": {"sender": "safari"}}
    })
    

    コメントに関しては、特定の要素を更新したい場合は $setを使用します $elemMatchと組み合わせて および位置演算子$ 。たとえば、次のようになります。

    db.yourcollection.update({
      "username": "amitverma", 
      "notifications.notifications_add_friend": {
        $elemMatch: {"sender": "safari"}
      }
    }, {
      $set: {
        "notifications.notifications_add_friend.$.isUnread": false
      }
    })
    



    1. Mongoシェル履歴ファイルまたはWindows上のすべての履歴にアクセスする方法

    2. PHPがMongoDBドライバーを見つけることができません

    3. Spring MongoRepositoryは、挿入する代わりに更新またはアップサーティングしています

    4. Rails 3を使用してMongoDBのデフォルトのTimeZoneを変更することは可能ですか?