Maison  >  Article  >  interface Web  >  Tutoriel détaillé sur la façon d'utiliser Nodejs pour se connecter à la base de données mongodb

Tutoriel détaillé sur la façon d'utiliser Nodejs pour se connecter à la base de données mongodb

巴扎黑
巴扎黑original
2017-08-22 17:04:442142parcourir

Cet article présente principalement le code d'implémentation de l'utilisation de Nodejs pour se connecter à la base de données mongodb. Les amis dans le besoin peuvent s'y référer

Un exemple simple de connexion de nodejs à mongodb, tiré de l'exemple officiel de mongodb

1. Créez package.json

Tout d'abord, créez notre répertoire de projet connect-mongodb et utilisez-le comme répertoire actuel


mkdir connect-mongodb
cd connect-mongodb

Entrez la commande npm init pour créer package.json


npm init

Ensuite, installez le pilote de la version nodejs de mongodb


npm install mongodb --save

Le package de pilotes mongodb sera installé dans node_modules dans le répertoire actuel

2 Démarrez le serveur MongoDB.

Installez MongoDB et démarrez le service de base de données MongoDB, veuillez vous référer à mon article précédent ou à la documentation officielle de MongoDB

3. Connectez-vous à MongoDB

Créez un fichier app.js et ajoutez le code suivant pour vous connecter à la base de données nommée myNewDatabase sur l'adresse du serveur 192.168.0.243 et le port mongodb 27017


var MongoClient = require('mongodb').MongoClient,
  assert = require('assert');
// Connection URL
var url = 'mongodb://192.168.0.243:27017/myNewDatabase';
MongoClient.connect(url,function(err,db){
  assert.equal(null,err);
  console.log("Connection successfully to server");
  db.close();
});

sur la ligne de commande Entrez la commande suivante pour exécuter app.js


node app.js

4. Insérez le document

dans l'application Ajoutez le code suivant à js et utilisez la méthode insertMany pour ajouter 3 documents à la collection de documents


var insertDocuments = function(db, callback){
  // get ths documents collection
  var collection = db.collection('documents');
  // insert some documents
  collection.insertMany([
    {a:1},{a:2},{a:3}
  ],function(err,result){
    assert.equal(err,null);
    assert.equal(3,result.result.n);
    assert.equal(3,result.ops.length);
    console.log("Inserted 3 documents into the collection");
    callback(result);
  });
};
La commande insert renvoie un objet contenant les attributs suivants :

  • result Le résultat du document renvoyé par MongoDB

  • ops Le document avec le champ _id ajout d'une

  • connexion où l'opération d'insertion est effectuée. Utilisez la connexion

dans app.js pour mettre à jour le code suivant afin d'appeler la méthode insertDocuments


var MongoClient = require('mongodb').MongoClient
 , assert = require('assert');
// Connection URL
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, db) {
 assert.equal(null, err);
 console.log("Connected successfully to server");
 insertDocuments(db, function() {
  db.close();
 });
});
Utilisez node app dans la ligne de commande .js run

Interrogez tous les documents

Ajouter la fonction findDocuments


var findDocuments = function(db,callback){
  // get the documents collection
  var collection = db.collection('documents');
  // find some documents
  collection.find({}).toArray(function(err,docs){
    assert.equal(err,null);
    console.log("Found the following records");
    console.log(docs);
    callback(docs);
  });
};
La fonction findDocuments interroge tous les documents de toute la collection 'documents', ajoutez cette fonction à la fonction de rappel de MongoClient. connectez


var MongoClient = require('mongodb').MongoClient
 , assert = require('assert');
// Connection URL
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, db) {
 assert.equal(null, err);
 console.log("Connected correctly to server");
 insertDocuments(db, function() {
  findDocuments(db, function() {
   db.close();
  });
 });
});

6. Utilisez le filtre de requête pour interroger des documents

Rechercher des documents pour un ':3


var findDocuments = function(db, callback) {
 // Get the documents collection
 var collection = db.collection('documents');
 // Find some documents
 collection.find({'a': 3}).toArray(function(err, docs) {
  assert.equal(err, null);
  console.log("Found the following records");
  console.log(docs);
  callback(docs);
 });   
}

7. Mettre à jour le document


var updateDocument = function(db,callback){
  // get the documents collection
  var collection = db.collection('documents');
  // update document where a is 2, set b equal to 1
  collection.updateOne({a:2},{
    $set:{b:1}
  },function(err,result){
    assert.equal(err,null);
    assert.equal(1,result.result.n);
    console.log("updated the document with the field a equal to 2");
    callback(result);
  });
};
La méthode updateDocument met à jour le premier document qui remplit la condition a est 2, ajoutez un nouvel attribut b et définissez-le sur 1.

Ajoutez la méthode updateDocument au rappel de la méthode MongoClient.connect


MongoClient.connect(url,function(err,db){
  assert.equal(null,err);
  console.log("Connection successfully to server");
  insertDocuments(db,function(){
    updateDocument(db,function(){
      db.close();
    });
  });
});

Supprimez le document


Ajouter à app.js
var removeDocument = function(db,callback){
  // get the documents collection
  var collection = db.collection('documents');
  // remove some documents
  collection.deleteOne({a:3},function(err,result){
    assert.equal(err,null);
    assert.equal(1,result.result.n);
    console.log("removed the document with the field a equal to 3");
    callback(result);
  });
};


var MongoClient = require('mongodb').MongoClient
 , assert = require('assert');
// Connection URL
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, db) {
 assert.equal(null, err);
 console.log("Connected successfully to server");
 insertDocuments(db, function() {
  updateDocument(db, function() {
   removeDocument(db, function() {
    db.close();
   });
  });
 });
});

9. Créer des index Les index peuvent améliorer les performances des applications. Ci-dessous votre code ajoute un index sur l'attribut 'a'


Mettre à jour app.js
var indexCollection = function(db,callback){
  db.collection('documents').createIndex({
    a:1
  },null,function(err,results){
    console.log(results);
    callback();
  });
};


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn