sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB:Aktualizujte pole položky v poli tak, aby odpovídalo jinému poli této položky

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"
        }
    }
)


  1. Jak zacházet s kruhovými dokumenty v MongoDB/DynamoDB?

  2. Jak to udělat findAll v novém mongo C# ovladači a udělat to synchronní

  3. db.createCollection není funkce

  4. Jak aktualizovat existující dokumenty v MongoDB