mongoose
Mungo-Schemas
Suche…
Grundschema
Ein grundlegendes Benutzerschema:
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);
Schema-Methoden
Es können Methoden für Schemas festgelegt werden, um die Arbeit mit diesem Schema bzw. diesen Schemas zu erleichtern und sie gut organisiert zu halten.
userSchema.methods.normalize = function() {
this.name = this.name.toLowerCase();
};
Verwendungsbeispiel:
erik = new User({
'name': 'Erik',
'password': 'pass'
});
erik.normalize();
erik.save();
Schema Statik
Schema-Statiken sind Methoden, die direkt von einem Modell aufgerufen werden können (im Gegensatz zu Schema-Methoden, die von einer Instanz eines Mongoose-Dokuments aufgerufen werden müssen). Sie weisen einen statischen ein Schema durch die Funktion des Schemas Hinzufügen statics - Objekt.
Ein Beispiel für einen Anwendungsfall ist das Erstellen benutzerdefinierter Abfragen:
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)
})
GeoObjects-Schema
Ein allgemeines Schema, das zum Arbeiten mit Geoobjekten wie Punkten, Linestrings und Polygonen hilfreich ist. Sowohl Mongoose als auch MongoDB unterstützen Geojson .
Anwendungsbeispiel in Node / 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);
Aktuelle Uhrzeit und Aktualisierungszeit speichern
Diese Art von Schema ist nützlich, wenn Sie Ihre Artikel nach Einfügungszeitpunkt oder Aktualisierungszeitpunkt verfolgen möchten.
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);