sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:Opdater et felt for et element i array med at matche et andet felt for det element

Du ville normalt gøre dette ved at bruge positionsoperatoren $ , som beskrevet i svaret på dette spørgsmål:

Opdater felt i nøjagtigt elementarray i MongoDB

Desværre understøtter positionsoperatoren lige nu kun ét array-niveau dybt af matchning.

Der er en JIRA-billet til den slags adfærd, du ønsker:https://jira.mongodb .org/browse/SERVER-831

Hvis du kan foretage Switches ind i et objekt i stedet for, kan du gøre noget som dette:

db.colection.update(
    {
        _id: ObjectId("561ad881755a021904c00fb5"),
        "Switch.Ports.PortNumber": 5
    }, 
    {
        $set: {
            "Switch.Ports.$.Status": "Empty"
        }
    }
)


  1. Kan ikke deserialisere PyMongo ObjectId fra JSON

  2. Skift standard Mongo-forbindelsesbassinstørrelse i fjederstøvle

  3. mongo-forespørgsel - henter et specifikt objekt (dets `_id` er kendt) fra array af objekt MEN denne array er også en del af listen over dokumenter

  4. kan ikke få adgang til req.users egenskaber