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

Mongoose:tetapkan bidang tipe 'array of Strings'

Ini tidak didokumentasikan dengan baik, tetapi ketika memanipulasi bidang larik, Anda perlu memastikan bahwa Anda memicu deteksi perubahan bidang Mongoose sehingga ia tahu bahwa larik telah dimodifikasi dan perlu disimpan.

Menyetel elemen array secara langsung melalui indeksnya dalam tanda kurung siku tidak menandainya dimodifikasi sehingga Anda harus menandainya secara manual menggunakan markModified :

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

Atau Anda dapat melakukannya sekaligus, menggunakan set metode array Mongoose:

user.emails.set(0, email1);

Menimpa seluruh bidang array juga memicunya, itulah sebabnya ini bekerja untuk Anda:

user.emails = [email1, email2];

serta:

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

Yang berarti ini juga berfungsi:

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. cara menangani kesalahan pemutusan untuk MongoDB

  2. temukan dan perbarui luwak menghapus bidang lainnya

  3. findAll gagal setelah play morphia diinisialisasi ulang

  4. MongoDB (Java) - Bagaimana cara menjalankan kueri yang disimpan dalam file javascript?

  5. Terselubung RFC3339 DateTime to Date di java