tutorial node mongo node.js mongodb mongoose

node.js - node js mongodb tutorial



establecer el campo como vacĂ­o para el objeto mongo usando mangosta (5)

Estoy llamando a user.save () en un objeto, donde configuro user.signup_date = null;

user.first_name = null; user.signup_date = null; user.save();

Pero cuando veo al usuario en el mongodb, todavía tiene la fecha de inicio de sesión y el primer nombre establecidos ... ¿cómo establezco este campo como vacío o nulo?


¿Hace una diferencia si prueba el método set, como este:

user.set(''first_name'', null); user.set(''signup_date'', null); user.save();

O tal vez hay un error al guardar, ¿qué pasa si lo haces:

user.save(function (err) { if (err) console.log(err); });

¿Imprime algo en el registro?


En la documentación de Mongoose (tipos de esquema), puede ir a la explicación de Arrays . Ahí, dice esto:

Las matrices son especiales porque tienen implícitamente un valor predeterminado de [] (matriz vacía).

var ToyBox = mongoose.model(''ToyBox'', ToyBoxSchema); console.log((new ToyBox()).toys); // []

Para sobrescribir este valor predeterminado, debe establecer el valor default como undefined

( He hecho una adición dentro del elemento de toys )

var ToyBoxSchema = new Schema({ toys: { type: [{ name: String, features: [String] }], default: undefined } });


Otra opción es definir un valor predeterminado como undefined para estas propiedades.

Algo como lo siguiente:

let userSchema = new mongoose.Schema({ first_name: { type: String, default: undefined }, signup_date: { type: Date, default: undefined } })


Para eliminar esas propiedades de su documento existente, configúrelas como undefined lugar de null antes de guardar el documento:

user.first_name = undefined; user.signup_date = undefined; user.save();


Solo borrar campos

delete user.first_name; delete user.signup_date; user.save();