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

De WikiSys
Aller à : navigation, rechercher
(Page créée avec « 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 inscr... »)
(Aucune différence)

Version du 14 juillet 2019 à 13:55

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 champs 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 champs pseudo correspondant au rédacteur du texte
  4. Incrémenter de 1 le champs 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.