sql >> Database >  >> NoSQL >> MongoDB

MongoDB:een array in array bijwerken

Na wat meer onderzoek lijkt het erop dat de enige manier om de array binnen een array te wijzigen, is met wat externe logica om de index te vinden van het element dat ik wil wijzigen. Om dit te doen, zou elke wijziging een zoekquery moeten hebben om de index te lokaliseren en vervolgens een updatequery om de array te wijzigen. Dit lijkt niet de beste manier.

Link naar een JIRA-zaak uit 2010 waarin om meerdere positionele elementen wordt verzocht...

Aangezien ik altijd de ID van de functie weet, heb ik ervoor gekozen om mijn documentstructuur te herzien.

     {
    "_id" : "v5y8nggzpja5Pa7YS",
    "name" : "Example",
    "display_name" : "EX1",
    "groups" : [
        {
            "_id" : "s86CbNBdqJnQ5NWaB",
            "name" : "Group1",
            "display_name" : "G1",
            "features" : {
               "1" : {
                       type     : "blog",
                       name     : "[blog name]"
                       owner_id : "ga5YgvP5yza7pj8nS"
               }, 
            }
         },
     ]
 },

Met de nieuwe structuur kunnen wijzigingen op de volgende manier worden aangebracht:

db.orgs.update({_id: "v5y8nggzpja5Pa7YS", "groups._id": "s86CbNBdqJnQ5NWaB"}, {$set: {"groups.$.features.1.name":"Blog Test 1"}});



  1. MongoDB:sorteren op array-index

  2. Spring Data MongoDB BigDecimal-ondersteuning

  3. Hoe vind ik vergelijkbare documenten in MongoDB?

  4. Maak een ISODate met pyMongo