sql >> Base de Datos >  >> NoSQL >> MongoDB

Mangosta:asignar campo de tipo 'matriz de cadenas'

No está bien documentado, pero al manipular los campos de la matriz, debe asegurarse de activar la detección de cambio de campo de Mongoose para que sepa que la matriz se ha modificado y debe guardarse.

Establecer directamente un elemento de matriz a través de su índice entre corchetes no lo marca como modificado, por lo que debe marcarlo manualmente usando markModified :

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

O puede hacerlo de una sola vez, usando el set método de la matriz Mongoose:

user.emails.set(0, email1);

Sobrescribir todo el campo de matriz también lo activa, por lo que esto funciona para usted:

user.emails = [email1, email2];

así como:

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

Lo que significa que esto también funciona:

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