Recherche…


Remarques

Ce sont les opérations CRUD de base pour utiliser mongo db avec nodejs.

Question: Y a-t-il d'autres façons de faire ce qui est fait ici?

Réponse: Oui, il existe de nombreuses façons de procéder.

Question: Est-ce que l'utilisation de mangouste est nécessaire?

Réponse: Non. Il y a d'autres forfaits disponibles qui peuvent vous aider.

Question: Où puis-je obtenir une documentation complète de la mangouste?

Réponse: cliquez ici

Connexion à une base de données

Pour se connecter à une base de données mongo depuis une application de nœud, nous avons besoin de mangouste.

Installer Mongoose Accédez à la base de votre application et installez mongoose par

npm install mongoose

Ensuite, nous nous connectons à la base de données.

var mongoose = require('mongoose');

//connect to the test database running on default mongod port of localhost  
mongoose.connect('mongodb://localhost/test');



//Connecting with custom credentials
mongoose.connect('mongodb://USER:PASSWORD@HOST:PORT/DATABASE');


//Using Pool Size to define the number of connections opening
//Also you can use a call back function for error handling
mongoose.connect('mongodb://localhost:27017/consumers', 
                 {server: { poolSize: 50 }}, 
                 function(err) {
                    if(err) {
                        console.log('error in this')
                        console.log(err);
                        // Do whatever to handle the error 
                    } else {
                        console.log('Connected to the database');
                    }
                });  

Créer une nouvelle collection

Avec Mongoose, tout est dérivé d'un schéma. Permet de créer un schéma.

var mongoose = require('mongoose');
        
var Schema = mongoose.Schema;

var AutoSchema = new Schema({
    name : String,
    countOf: Number,
});
// defining the document structure 

// by default the collection created in the db would be the first parameter we use (or the plural of it)    
module.exports = mongoose.model('Auto', AutoSchema); 

// we can over write it and define the collection name by specifying that in the third parameters. 
module.exports = mongoose.model('Auto', AutoSchema, 'collectionName'); 


// We can also define methods in the models. 
AutoSchema.methods.speak = function () {
  var greeting = this.name
    ? "Hello this is  " + this.name+ " and I have counts of "+ this.countOf
    : "I don't have a name";
  console.log(greeting);
}
mongoose.model('Auto', AutoSchema, 'collectionName'); 

Rappelez-vous que les méthodes doivent être ajoutées au schéma avant de le compiler avec mongoose.model () comme ci-dessus.

Insérer des documents

Pour insérer un nouveau document dans la collection, nous créons un objet du schéma.

var Auto = require('models/auto')
var autoObj = new Auto({
    name: "NewName", 
    countOf: 10
});

Nous sauvegardons comme ci-dessous

autoObj.save(function(err, insertedAuto) {
    if (err) return console.error(err);
    insertedAuto.speak();
    // output: Hello this is NewName and I have counts of 10
});

Cela va insérer un nouveau document dans la collection

En train de lire

La lecture des données de la collection est très facile. Obtenir toutes les données de la collection.

var Auto = require('models/auto')
Auto.find({}, function (err, autos) {
      if (err) return console.error(err);
       // will return a json array of all the documents in the collection
      console.log(autos); 
})

Lecture de données avec une condition

Auto.find({countOf: {$gte: 5}}, function (err, autos) {
      if (err) return console.error(err);
       // will return a json array of all the documents in the collection whose count is greater than 5
      console.log(autos); 
})

Vous pouvez également spécifier le second paramètre comme objet de tous les champs dont vous avez besoin

Auto.find({},{name:1}, function (err, autos) {
      if (err) return console.error(err);
       // will return a json array of name field of all the documents in the collection
      console.log(autos); 
})

Trouver un document dans une collection.

Auto.findOne({name:"newName"}, function (err, auto) {
      if (err) return console.error(err);
     //will return the first object of the document whose name is "newName"
      console.log(auto); 
})

Trouver un document dans une collection par identifiant.

Auto.findById(123, function (err, auto) {
      if (err) return console.error(err);
     //will return the first json object of the document whose id is 123
      console.log(auto); 
})

Mise à jour

Pour mettre à jour des collections et des documents, nous pouvons utiliser l'une des méthodes suivantes:

Les méthodes

  • mettre à jour()
  • updateOne ()
  • updateMany ()
  • replacene un ()

Mettre à jour()

La méthode update () modifie un ou plusieurs documents (paramètres de mise à jour)

db.lights.update(
   { room: "Bedroom" },
   { status: "On" }
)

Cette opération recherche la collection 'lights' pour un document où room est Bedroom (1er paramètre) . Il met ensuite à jour la propriété d' status documents correspondants sur On (2nd paramètre) et renvoie un objet WriteResult qui ressemble à ceci:

{ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }

UpdateOne

La méthode UpdateOne () modifie UN document (paramètres de mise à jour)

db.countries.update(
   { country: "Sweden" },
   { capital: "Stockholm" }
)

Cette opération recherche la collection «pays» pour un document dont le country est la Suède (1er paramètre) . Il met ensuite à jour le capital propriété des documents correspondants à Stockholm (2ème paramètre) et renvoie un objet WriteResult qui ressemble à ceci:

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

UpdateMany

La méthode UpdateMany () modifie les documents multiples (paramètres de mise à jour)

db.food.updateMany(
   { sold: { $lt: 10 } },
   { $set: { sold: 55 } }
)

Cette opération met à jour tous les documents (dans une collection «alimentaire») où le produit sold est inférieur à 10 * (1er paramètre) en définissant le produit sold à 55 . Il retourne ensuite un objet WriteResult qui ressemble à ceci:

{ "acknowledged" : true, "matchedCount" : a, "modifiedCount" : b }

a = Nombre de documents correspondants
b = Nombre de documents modifiés


ReplaceOne

Remplace le premier document correspondant (document de remplacement)

Cet exemple de collection appelé Pays contient 3 documents:

{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Spain" }

L'opération suivante remplace le document { country: "Spain" } par le document { country: "Finland" }

db.countries.replaceOne(
   { country: "Spain" },
   { country: "Finland" }
)

Et revient:

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

L'exemple de pays de collecte contient maintenant:

{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Finland" }

Effacer

La suppression de documents d'une collection en mangouste se fait de la manière suivante.

Auto.remove({_id:123}, function(err, result){
    if (err) return console.error(err);
    console.log(result); // this will specify the mongo default delete result.
});


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow