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 à 17:37

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

var inscriptionSchema = new mongoose.Schema({
    email: String,
    pseudo: String,
    password : String,
    date_inscription : String,
    textes_rediges : Number,
    textes_notes : Number,
});

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 :

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}});
})
  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.