MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB:aktualizowanie tablicy w tablicy

Po kilku dalszych badaniach wygląda na to, że jedynym sposobem na zmodyfikowanie tablicy w tablicy byłoby użycie zewnętrznej logiki, aby znaleźć indeks elementu, który chcę zmienić. Wykonanie tego wymagałoby, aby każda zmiana zawierała zapytanie find w celu zlokalizowania indeksu, a następnie zapytanie aktualizujące w celu zmodyfikowania tablicy. To nie wydaje się najlepszy sposób.

Link do sprawy JIRA 2010 żądającej wielu elementów pozycyjnych...

Ponieważ zawsze będę znać identyfikator funkcji, zdecydowałem się zmienić strukturę mojego 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"
               }, 
            }
         },
     ]
 },

W nowej strukturze zmiany można wprowadzać w następujący sposób:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Znajdź dokładne dopasowanie tablicy, ale kolejność nie ma znaczenia

  2. Zaktualizuj tablicę w mongo i upsert

  3. Zwróć tylko dopasowane elementy poddokumentu w zagnieżdżonej tablicy

  4. Wstaw Async Bulk (batch) do MySQL (lub MongoDB?) przez Node.js

  5. Pięć wskazówek dotyczących lepszego hostingu MongoDB na platformie Azure