MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để thêm json vào một mảng lồng nhau của tài liệu mongodb bằng Spring?

Truy vấn cập nhật này thêm JSON vào mảng lồng nhau, "SERVICES.VERSIONS.GROUPS.CUSTOMERS" , dựa trên các điều kiện lọc được chỉ định. Lưu ý rằng các điều kiện bộ lọc của bạn hướng thao tác cập nhật đến mảng cụ thể (trong số các mảng lồng nhau).

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

Một số điều cần lưu ý khi cập nhật tài liệu có mảng lồng nhau trong số nhiều cấp lồng nhau.

  • Sử dụng tất cả toán tử vị trí $[] và người điều hành vị trí được lọc $[<identifier>] , không phải $ toán tử vị trí.Với toán tử vị trí được lọc, chỉ định điều kiện lọc mảng bằng cách sử dụng arrayFilters tham số. Lưu ý rằng điều này sẽ hướng bản cập nhật của bạn nhắm mục tiêu đến mảng lồng nhau cụ thể.
  • Đối với toán tử vị trí được lọc $[<identifier>] , mã bảo mật phải bắt đầu bằng chữ thường và chỉ chứa các ký tự chữ và số.

Tài liệu tham khảo:

  • Cập nhật mảng Hoạt động
  • db.collection.update () với arrayFilters


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. DynamoDB và MongoDB NoSQL

  2. Xác thực tính duy nhất của một tài liệu nhúng được cấp bởi cha mẹ của nó trong mongoose

  3. Truy vấn Mongoose trong đó giá trị không rỗng

  4. Mongoose tìm / cập nhật tài liệu phụ

  5. Cách bật tính năng ghi nhật ký cho Mongoose và trình điều khiển MongoDB Node.JS