Согласно документации MongoDB, $ set заменяет значение поля указанным значением или, если оно не существует, добавляет новое поле с указанным значением. У меня вопрос, как добавить в существующую строку, не заменяя существующую, например:
{
"_id" : ObjectId("58dc9feca463e61042d2e462"),
"email" : "spguillen@yahoo.com",
"accountType" : "admin",
"accessKeys" : [
{
"keyId" : "d06e6640-2f98-11e7-810b-67d01c2ba6eb",
"name" : "Admin Key",
"rights" : [
"Read",
"Create",
"Delete"
]
}
]
}
Я хочу добавить следующее в поле accessKeys:
{"keyId": "50fcb190-5636-11e7-855a-0d21d5eb6743", "name": "Standard Key", "rights": ["Update"]}
Без необходимости перезаписывать существующие ключи доступа. В идеале также следует установить условие для любых учетных записей, для которых accountType: admin , чтобы при отсутствии accessKeys было установлено поле accessKey с указанным выше ключом доступа, но при наличии ключа доступа добавьте указанный выше ключ доступа к существующий.