MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara menambahkan json dalam array bersarang dari dokumen mongodb menggunakan Spring?

Kueri pembaruan ini menambahkan JSON ke larik bersarang, "SERVICES.VERSIONS.GROUPS.CUSTOMERS" , berdasarkan kondisi filter yang ditentukan. Perhatikan bahwa kondisi filter Anda mengarahkan operasi pembaruan ke larik tertentu (dari larik bersarang).

// 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" }
      ]
  }
);

Beberapa hal yang perlu diperhatikan saat memperbarui dokumen dengan array bersarang lebih dari satu tingkat bersarang.

  • Gunakan operator semua posisi $[] dan operator posisi yang difilter $[<identifier>] , dan bukan $ operator posisi. Dengan operator posisi terfilter, tentukan kondisi filter larik menggunakan arrayFilters parameter. Perhatikan bahwa ini akan mengarahkan pembaruan Anda untuk menargetkan larik bersarang tertentu.
  • Untuk operator posisi yang difilter $[<identifier>] , pengenal harus dimulai dengan huruf kecil dan hanya berisi karakter alfanumerik.

Referensi:

  • Operator Pembaruan Array
  • db.collection.update() dengan arrayFilters


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara mendefinisikan objek dalam array dalam skema Mongoose dengan benar dengan indeks geo 2d

  2. Gunakan mongoexport dengan --query untuk ISODate

  3. Perbedaan antara Temukan dan FindAsync

  4. MongoDB $sampelRate

  5. MongoDB $type Aggregation Pipeline Operator