Normálně byste to udělali pomocí pozičního operátoru $
, jak je popsáno v odpovědi na tuto otázku:
Aktualizujte pole v poli přesných prvků v MongoDB
Bohužel právě teď poziční operátor podporuje shodu s hloubkou pouze jedné úrovně pole.
Existuje lístek JIRA pro druh chování, který chcete:https://jira.mongodb .org/browse/SERVER-831
V případě, že můžete vytvořit Switches
do objektu, můžete udělat něco takového:
db.colection.update(
{
_id: ObjectId("561ad881755a021904c00fb5"),
"Switch.Ports.PortNumber": 5
},
{
$set: {
"Switch.Ports.$.Status": "Empty"
}
}
)