sql >> Database >  >> NoSQL >> MongoDB

Mongoose:wijs het veld van het type 'array of Strings' toe

Het is niet goed gedocumenteerd, maar bij het manipuleren van arrayvelden moet je ervoor zorgen dat je de veldveranderingsdetectie van Mongoose activeert, zodat het weet dat de array is gewijzigd en moet worden opgeslagen.

Het rechtstreeks instellen van een array-element via de index tussen vierkante haken markeert het niet als gewijzigd, dus u moet het handmatig markeren met markModified :

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

Of je kunt het in één keer doen, met behulp van de set methode van de Mongoose-array:

user.emails.set(0, email1);

Het overschrijven van het hele arrayveld activeert het ook en daarom werkt dit voor jou:

user.emails = [email1, email2];

evenals:

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

Wat betekent dat dit ook werkt:

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



  1. Hoe MongoDB importeren met es6-stijlimport?

  2. Ik wil dat mijn pre('save') mangoestfunctie maar één keer werkt

  3. mongodb verbinding time-out fout

  4. Mongodb Document naar Scala case class