MongoDB/Incrémentation évènementielle d'un champ dans une collection : Différence entre versions

De WikiSys
Aller à : navigation, rechercher
 
Ligne 12 : Ligne 12 :
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Nous souhaitons incrémenter par exemple le champs '''textes_rediges''' quand le membre inscrit rédige un texte.
+
Nous souhaitons incrémenter par exemple le champ '''textes_rediges''' quand le membre inscrit rédige un texte.
  
 
Dans la fonction validant le texte, en étant connecté à Mongo, ajouter la dernière ligne dans le code ci-dessous :
 
Dans la fonction validant le texte, en étant connecté à Mongo, ajouter la dernière ligne dans le code ci-dessous :
Ligne 31 : Ligne 31 :
 
# Connexion à la base de données '''infos'''
 
# Connexion à la base de données '''infos'''
 
# Utiliser la collection '''inscrits'''
 
# Utiliser la collection '''inscrits'''
# Rechercher le champs pseudo correspondant au rédacteur du texte
+
# Rechercher le champ pseudo correspondant au rédacteur du texte
# Incrémenter de '''1''' le champs '''textes_rediges''' de cet inscrit  
+
# Incrémenter de '''1''' le champ '''textes_rediges''' de cet inscrit  
  
A noter : il est possible de remplacer le nombre '''1''' de l'exemple de cet exemple par un nombre plus élevé ou négatif.
+
A noter : il est possible de remplacer le nombre '''1''' de cet exemple par un nombre plus élevé ou négatif.

Version actuelle en date du 14 juillet 2019 à 16:37

Supposons que nous ayons dans la base de données infos une collection inscrits dont le schéma est le suivant :

<syntaxhighlight lang="javascript"> var inscriptionSchema = new mongoose.Schema({

   email: String,
   pseudo: String,
   password : String,
   date_inscription : String,
   textes_rediges : Number,
   textes_notes : Number,

}); </syntaxhighlight>

Nous souhaitons incrémenter par exemple le champ textes_rediges quand le membre inscrit rédige un texte.

Dans la fonction validant le texte, en étant connecté à Mongo, ajouter la dernière ligne dans le code ci-dessous :

<syntaxhighlight lang="javascript"> const pseudo = req.body.redacteur_pseudo; ... var url = "mongodb://localhost:27017";

  MongoClient.connect(url, function(err, db) {

if (err) throw err; var dbo = db.db("infos") ... // Validation du texte

dbo.collection('inscrits').update ({pseudo: pseudo}, {$inc: {textes_rediges:1}}); }) </syntaxhighlight>

  1. Connexion à la base de données infos
  2. Utiliser la collection inscrits
  3. Rechercher le champ pseudo correspondant au rédacteur du texte
  4. Incrémenter de 1 le champ textes_rediges de cet inscrit

A noter : il est possible de remplacer le nombre 1 de cet exemple par un nombre plus élevé ou négatif.