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
comoundefined
( 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();