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

Jak dodać json do zagnieżdżonej tablicy dokumentu mongodb za pomocą Spring?

To zapytanie aktualizujące dodaje kod JSON do zagnieżdżonej tablicy "SERVICES.VERSIONS.GROUPS.CUSTOMERS" , na podstawie określonych warunków filtrowania. Zwróć uwagę, że warunki filtrowania kierują operację aktualizacji do określonej tablicy (zagnieżdżonych tablic).

// JSON document to be added to the CUSTOMERS array
new_cust = { 
             "CUSTOMER_CONFIG_ID": "6", 
             "ACTIVATION_DATE": "31-03-2020", 
             "STATUS": "Y" 
}

db.collection.update( 
  { 
      "SERVICE_CATEGORY": "COMMON_SERVICE", 
      "SERVICES.SERVICE_NAME": "Authentication Service",
      "SERVICES.VERSIONS.VERSION_NAME": "AuthenticationServiceV6_3"
  }, 
  { 
      $push: { "SERVICES.$[s].VERSIONS.$[v].GROUPS.$[g].CUSTOMERS": new_cust } 
  },
  {
      multi: true,
      arrayFilters: [
          { "s.SERVICE_NAME": "Authentication Service" },
          { "v.VERSION_NAME": "AuthenticationServiceV6_3" },
          { "g.GROUP_NAME": "TEST GROUP" }
      ]
  }
);

Niewiele rzeczy, na które należy zwrócić uwagę podczas aktualizowania dokumentów za pomocą zagnieżdżonych tablic więcej niż jednopoziomowe zagnieżdżenie.

  • Użyj operatora all pozycyjnego $[] i przefiltrowany operator pozycji $[<identifier>] , i nie $ operator pozycyjny. Z filtrowanym operatorem pozycyjnym określ warunki filtrowania tablicy za pomocą arrayFilters parametr. Zauważ, że to skieruje twoją aktualizację na określoną zagnieżdżoną tablicę.
  • Dla filtrowanego operatora pozycyjnego $[<identifier>] , identyfikator musi zaczynać się od małej litery i zawierać tylko znaki alfanumeryczne.

Referencje:

  • Operatorzy aktualizacji tablicy
  • db.collection.update() z arrayFilters


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy możesz użyć mongo $push prepend zamiast append?

  2. Jak wybrać najlepszy hosting MongoDB dla swojej firmy?

  3. mongod HostnameCanonicalizationWorker błąd w systemie OS X

  4. mongodb grupuje wartości według wielu pól

  5. Jak wysłać zapytanie do MongoDB, aby sprawdzić, czy element istnieje?