sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose:přiřaďte pole typu 'array of Strings'

Není to dobře zdokumentováno, ale při manipulaci s poli pole se musíte ujistit, že spouštíte detekci změny pole Mongoose, aby věděl, že pole bylo upraveno a je třeba jej uložit.

Přímé nastavení prvku pole prostřednictvím jeho indexu v hranatých závorkách jej neoznačí jako změněné, takže jej musíte ručně označit pomocí markModified :

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

Nebo to můžete udělat najednou pomocí set metoda pole Mongoose:

user.emails.set(0, email1);

Přepsání celého pole pole jej také spustí, a proto vám to funguje:

user.emails = [email1, email2];

stejně jako:

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

Což znamená, že to také funguje:

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



  1. MongoDB:spočítejte počet položek v poli

  2. Motory pro zpracování velkých dat – Který z nich mám použít?:Část 1

  3. Spuštění MongoDB s Ops Manager

  4. Odesílání zpráv skupinám v Django Channels 2