Node.js
Node.JS et MongoDB.
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.
});