mongoose
Esquemas de mangosta
Buscar..
Esquema basico
Un esquema de usuario básico:
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
name: String,
password: String,
age: Number,
created: {type: Date, default: Date.now}
});
var User = mongoose.model('User', userSchema);
Métodos de esquema
Se pueden establecer métodos en los esquemas para ayudar a hacer cosas relacionadas con los esquemas y mantenerlos bien organizados.
userSchema.methods.normalize = function() {
this.name = this.name.toLowerCase();
};
Ejemplo de uso:
erik = new User({
'name': 'Erik',
'password': 'pass'
});
erik.normalize();
erik.save();
Estática del esquema
Las estadísticas de esquema son métodos que pueden invocarse directamente por un modelo (a diferencia de los métodos de esquema, que deben invocarse mediante una instancia de un documento de Mongoose). Usted asigna una estática a un esquema agregando la función al objeto de statics del esquema.
Un ejemplo de caso de uso es para construir consultas personalizadas:
userSchema.statics.findByName = function(name, callback) {
return this.model.find({ name: name }, callback);
}
var User = mongoose.model('User', userSchema)
User.findByName('Kobe', function(err, documents) {
console.log(documents)
})
Esquema de geoobjetos
Un esquema genérico útil para trabajar con geo-objetos como puntos, cadenas de líneas y polígonos. Tanto Mongoose como MongoDB son compatibles con Geojson .
Ejemplo de uso en Nodo / Express :
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// Creates a GeoObject Schema.
var myGeo= new Schema({
name: { type: String },
geo : {
type : {
type: String,
enum: ['Point', 'LineString', 'Polygon']
},
coordinates : Array
}
});
//2dsphere index on geo field to work with geoSpatial queries
myGeo.index({geo : '2dsphere'});
module.exports = mongoose.model('myGeo', myGeo);
Ahorro de tiempo actual y tiempo de actualización
Este tipo de esquema será útil si desea realizar un seguimiento de sus elementos por el tiempo de inserción o actualización.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// Creates a User Schema.
var user = new Schema({
name: { type: String },
age : { type: Integer},
sex : { type: String },
created_at: {type: Date, default: Date.now},
updated_at: {type: Date, default: Date.now}
});
// Sets the created_at parameter equal to the current time
user.pre('save', function(next){
now = new Date();
this.updated_at = now;
if(!this.created_at) {
this.created_at = now
}
next();
});
module.exports = mongoose.model('user', user);