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

Mongoose:przypisz pole typu „tablica ciągów”

Nie jest to dobrze udokumentowane, ale kiedy manipulujesz polami tablicy, musisz upewnić się, że uruchamiasz wykrywanie zmian pól Mongoose, aby wiedział, że tablica została zmodyfikowana i musi zostać zapisana.

Bezpośrednie ustawienie elementu tablicy za pomocą jego indeksu w nawiasach kwadratowych nie oznacza jego modyfikacji, więc musisz ręcznie oznaczyć go za pomocą markModified :

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

Możesz też zrobić to za jednym razem, używając set metoda tablicy Mongoose:

user.emails.set(0, email1);

Zastąpienie całego pola tablicy również go wyzwala, dlatego to działa dla Ciebie:

user.emails = [email1, email2];

a także:

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

Co oznacza, że ​​to również działa:

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. Mongoose wielokrotne synchroniczne znajdowanie w celu ponownego użycia identyfikatora obiektu

  2. Zaktualizuj element w tablicy, który znajduje się w tablicy

  3. Loopback:filtr w pobliżu w podpolu obiektu

  4. MongoDB $sum i $avg dokumentów podrzędnych

  5. Agregacja MongoDB:Jak uzyskać całkowitą liczbę rekordów?