skip to Main Content
{
    _id: "d473ad718f214f158b31d591a97a5ce7",
    name: 'sam',
    keys: {
      q8f3ff57b03940959e1ae4dfe2cb57ad: {
        serviceaccountkey: {
          keyID: 'q8f3ff57b03940959e1ae4dfe2cb57ad',
          status: 'ACTIVE',
          keytype: 2,
        }
      },
      m887f7854adb4907b57903b896bcf6d6: {
        serviceaccountkey: {
          keyID: 'm887f7854adb4907b57903b896bcf6d6',
          status: 'ACTIVE',
          keytype: 2,
        }
      }
    }
  }
}

Suppose this is a document. How do I remove the first key, with ID "q8f3ff57b03940959e1ae4dfe2cb57ad" from this document? I want the end result to look like:

{
    _id: "d473ad718f214f158b31d591a97a5ce7",
    name: 'sam',
    keys: {
      m887f7854adb4907b57903b896bcf6d6: {
        serviceaccountkey: {
          keyID: 'm887f7854adb4907b57903b896bcf6d6',
          status: 'ACTIVE',
          keytype: 2,
        }
      }
    }
  }
}

2

Answers


  1. Use $unset:

    db.collection.update({},
    {
      "$unset": {
        "keys.q8f3ff57b03940959e1ae4dfe2cb57ad": ""
      }
    })
    
    Login or Signup to reply.
  2. This should do if you have many documents matching that ID or key

    db.collection.updateMany({},{"$unset":{"keys.q8f3ff57b03940959e1ae4dfe2cb57ad":1}})
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search