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

Mongoose:gán trường kiểu 'mảng chuỗi'

Nó không được ghi chép đầy đủ, nhưng khi thao tác với các trường mảng, bạn cần đảm bảo rằng bạn đang kích hoạt tính năng phát hiện thay đổi trường của Mongoose để nó biết rằng mảng đã được sửa đổi và cần được lưu.

Đặt trực tiếp một phần tử mảng thông qua chỉ mục của nó trong dấu ngoặc vuông không đánh dấu phần tử đó đã được sửa đổi, vì vậy bạn phải gắn cờ thủ công bằng cách sử dụng markModified :

user.emails[0] = email1;
user.markModified('emails');

Hoặc bạn có thể thực hiện một lần bằng cách sử dụng set phương thức của mảng Mongoose:

user.emails.set(0, email1);

Việc ghi đè toàn bộ trường mảng cũng kích hoạt nó, đó là lý do tại sao điều này hiệu quả với bạn:

user.emails = [email1, email2];

cũng như:

user.emails = [email1];
user.emails[1] = email2;

Có nghĩa là điều này cũng hoạt động:

user.emails = [];
user.emails[0] = email1;
user.emails[1] = email2;



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kết nối với DocumentDB từ AWS Lambda bằng Python

  2. Mongodb trả lại bộ sưu tập cũ

  3. Thông báo ClusterControl 1.7.1:Hỗ trợ PostgreSQL 11 và MongoDB 4.0, Giám sát nâng cao

  4. Các tài liệu con mongodb có tương đương với các bộ sưu tập con của Firestore không?

  5. Trạng thái phục hồi vô tận của thứ cấp