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

MongoDB:aktualizace pole v poli

Po nějakém dalším výzkumu to vypadá, že jediný způsob, jak upravit pole v poli, by bylo s nějakou vnější logikou najít index prvku, který chci změnit. To by vyžadovalo, aby každá změna měla vyhledávací dotaz k nalezení indexu a poté aktualizační dotaz k úpravě pole. To se nezdá jako nejlepší způsob.

Odkaz na případ JIRA z roku 2010 požadující více pozičních prvků...

Protože vždy budu znát ID funkce, rozhodl jsem se upravit strukturu svého dokumentu.

     {
    "_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"
               }, 
            }
         },
     ]
 },

S novou strukturou lze změny provádět následujícím způsobem:

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



  1. Najděte maximální prvek uvnitř pole

  2. Ukládání hesel pomocí Node.js a MongoDB

  3. unie ve stejné kolekci v mongodb

  4. Nastavení jarní relace na serveru redis