Zwykle robisz to za pomocą operatora pozycyjnego $
, jak opisano w odpowiedzi na to pytanie:
Aktualizuj pole w dokładnej tablicy elementów w MongoDB
Niestety, w tej chwili operator pozycyjny obsługuje tylko jeden poziom dopasowania tablicy.
Istnieje zgłoszenie JIRA dla pożądanego zachowania:https://jira.mongodb .org/browse/SERVER-831
W przypadku, gdy możesz zrobić Switches
do obiektu, możesz zrobić coś takiego:
db.colection.update(
{
_id: ObjectId("561ad881755a021904c00fb5"),
"Switch.Ports.PortNumber": 5
},
{
$set: {
"Switch.Ports.$.Status": "Empty"
}
}
)