web:javascript:mean_stack:mongoose
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
web:javascript:mean_stack:mongoose [2014/12/28 21:39] – [Options de l'update] sgariepy | web:javascript:mean_stack:mongoose [2022/02/02 00:42] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
On peut utiliser les options '' | On peut utiliser les options '' | ||
- | |||
- | |||
====== Schema ====== | ====== Schema ====== | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
===== Simple ===== | ===== Simple ===== | ||
Ligne 43: | Ligne 35: | ||
isActive: | isActive: | ||
}); | }); | ||
+ | </ | ||
+ | |||
+ | ==== Valeurs par défaut ==== | ||
+ | |||
+ | <code javascript> | ||
+ | created: { | ||
+ | type: Date, | ||
+ | default: Date.now | ||
+ | } | ||
</ | </ | ||
Ligne 85: | Ligne 86: | ||
Il faut remarquer que la propriété '' | Il faut remarquer que la propriété '' | ||
- | |||
Ligne 97: | Ligne 97: | ||
var noIdSchema = new Schema({ name: String }, { _id: false }); | var noIdSchema = new Schema({ name: String }, { _id: false }); | ||
</ | </ | ||
- | |||
- | |||
==== Propriété type ==== | ==== Propriété type ==== | ||
Ligne 141: | Ligne 139: | ||
===== Création ===== | ===== Création ===== | ||
- | |||
La création d'un modèle se fait avec '' | La création d'un modèle se fait avec '' | ||
Ligne 174: | Ligne 171: | ||
- | ====== Requêtes | + | ===== Requêtes ===== |
- | ===== find ===== | + | ==== find ==== |
La signature de '' | La signature de '' | ||
Ligne 223: | Ligne 220: | ||
- | ===== findOne | + | ==== findOne ==== |
Ligne 247: | Ligne 244: | ||
- | ===== findById | + | ==== findById ==== |
Signature : | Signature : | ||
Ligne 284: | Ligne 281: | ||
- | ===== Opérateurs de comparaison | + | ==== Opérateurs de comparaison ==== |
Des opérateurs peuvent être utilisés dans les requêtes pour affiner les résultats. | Des opérateurs peuvent être utilisés dans les requêtes pour affiner les résultats. | ||
Ligne 304: | Ligne 301: | ||
</ | </ | ||
- | ===== where ===== | + | ==== where ==== |
Au lieu d' | Au lieu d' | ||
Ligne 333: | Ligne 330: | ||
- | ====== Mise à jour ====== | + | ===== Mise à jour ===== |
Pour mettre à jour un document, on peut le récupérer et le sauvegarder dans le // | Pour mettre à jour un document, on peut le récupérer et le sauvegarder dans le // | ||
Ligne 360: | Ligne 357: | ||
</ | </ | ||
- | ===== Options de l' | + | ==== Options de l' |
^ Option | ^ Option | ||
Ligne 381: | Ligne 378: | ||
</ | </ | ||
- | ====== | + | |
+ | ==== findByIdAndUpdate | ||
+ | |||
+ | |||
+ | ^ Option | ||
+ | | new | Set to true to return the modified document rather than the original. | ||
+ | | upsert | ||
+ | | select | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Suppression | ||
Signature | Signature | ||
- | | + | |
+ | |||
+ | |||
+ | |||
+ | |||
+ | <code javascript> | ||
+ | var condition = { memberName: ' | ||
+ | |||
+ | Standup.remove(condition, | ||
+ | // code callback | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | Supprimer tous les documents qui sont créés le ou après le 31 octobre 2014: | ||
+ | <code javascript> | ||
+ | var gteDate = new Date(2014, 10, 31); | ||
+ | |||
+ | Standup.remove({ createdOn: { $gte: gteDate }}, function (err) { | ||
+ | // code callback | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | Suppression sans callback : | ||
+ | |||
+ | <code javascript> | ||
+ | var query = Standup.remove({ createdOn: { $gte: gteDate }}); | ||
+ | query.exec(); | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== findByIdAndRemove ==== | ||
+ | |||
+ | |||
+ | ^ Option | ||
+ | | select | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Autres exemples de requêtes ===== | ||
+ | |||
+ | <code javascript> | ||
+ | var query = Standup.find(); | ||
+ | |||
+ | query.sort({ createdOn: ' | ||
+ | | ||
+ | | ||
+ | // code callback | ||
+ | }); | ||
+ | </ | ||
+ | ====== Validation ====== | ||
+ | |||
+ | |||
+ | ^ Schema Type ^ Built-in Validators | ||
+ | | String | ||
+ | | Number | ||
+ | | Date | required | ||
+ | | Buffer | ||
+ | | Boolean | ||
+ | | Mixed | required | | | | ||
+ | | ObjectId | ||
+ | | Array | required | | | | ||
+ | |||
+ | ===== Validation required ===== | ||
+ | |||
+ | |||
+ | Exemple de schema : | ||
+ | |||
+ | <code javascript> | ||
+ | var customerSchema = new Schema({ | ||
+ | name: { type: String, required: true }, address: String, | ||
+ | city: String, | ||
+ | state: String, | ||
+ | country: String, | ||
+ | zipCode: Number, | ||
+ | createdOn: Date, | ||
+ | isActive: Boolean | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | |||
+ | Une fois le schema définit, on peut préciser une validation avec '' | ||
+ | required(required, | ||
+ | |||
+ | |||
+ | <code javascript> | ||
+ | customerSchema.path(' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Validation match ===== | ||
+ | |||
+ | <code javascript> | ||
+ | var reMatch = / | ||
+ | var customerSchema = new Schema({ | ||
+ | name: { type: String, | ||
+ | required: true, | ||
+ | match: reMatch }, | ||
+ | // etc... | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Validation enum ===== | ||
+ | |||
+ | <code javascript> | ||
+ | var impediments = [' | ||
+ | |||
+ | var standupSchema = new Schema({ | ||
+ | // abbreviated... | ||
+ | impediment: { | ||
+ | type: String, | ||
+ | required: true, | ||
+ | enum: impediments | ||
+ | } | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Validation min et max ===== | ||
+ | |||
+ | |||
+ | <code javascript> | ||
+ | var customerSchema = new Schema({ | ||
+ | name: String, | ||
+ | discount: { type: Number, min: 5 } | ||
+ | }); | ||
+ | |||
+ | var customerSchema = new Schema({ | ||
+ | name: String, | ||
+ | discount: { type: Number, max: 60 } | ||
+ | }); | ||
+ | |||
+ | var customerSchema = new Schema({ | ||
+ | name: String, | ||
+ | discount: { type: Number, min: 5, max: 60 } | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | ===== Validation personnalisée ===== | ||
+ | |||
+ | Une validation personnalisée peut être spécifiée avec '' | ||
+ | |||
+ | <code javascript> | ||
+ | var sizeValidator = [ | ||
+ | function (val) { | ||
+ | return (val.length > 0 && val.length <= 50) | ||
+ | }, | ||
+ | // Custom error text... | ||
+ | ' | ||
+ | ]; | ||
+ | |||
+ | var personSchema = new Schema({ | ||
+ | firstName: { type: String, required: true, validate: sizeValidator }, | ||
+ | lastName: { type: String, required: true, validate: sizeValidator }, | ||
+ | status: { type: String, required: true, default: ' | ||
+ | }); | ||
+ | |||
+ | var Person = new mongoose.model(' | ||
+ | |||
+ | var newPerson = new Person( { firstName: ' | ||
+ | |||
+ | newPerson.save(function (err) { | ||
+ | if (err) return handleError(err); | ||
+ | // saved the person document! | ||
+ | }); | ||
+ | </ | ||
+ | |||
web/javascript/mean_stack/mongoose.1419799172.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)