Heim  >  Artikel  >  Web-Frontend  >  Ausführliches Tutorial zur Verwendung von Nodejs zum Herstellen einer Verbindung zur Mongodb-Datenbank

Ausführliches Tutorial zur Verwendung von Nodejs zum Herstellen einer Verbindung zur Mongodb-Datenbank

巴扎黑
巴扎黑Original
2017-08-22 17:04:442139Durchsuche

In diesem Artikel wird hauptsächlich der Implementierungscode für die Verwendung von Nodejs zum Herstellen einer Verbindung zur Mongodb-Datenbank vorgestellt

Ein einfaches Beispiel für die Verbindung von Nodejs mit Mongodb, aus dem offiziellen Beispiel von Mongodb

1. Erstellen Sie package.json

Erstellen Sie zunächst unser Projektverzeichnis connect-mongodb und verwenden Sie es als unser aktuelles Verzeichnis


mkdir connect-mongodb
cd connect-mongodb

Geben Sie den Befehl npm init ein, um package.json


npm init

zu erstellen. Installieren Sie dann den NodeJS-Versionstreiber von Mongodb


npm install mongodb --save

Das MongoDB-Treiberpaket wird in node_modules im aktuellen Verzeichnis installiert

2. Starten Sie den MongoDB-Server

Installieren Sie MongoDB und starten Sie den MongoDB-Datenbankdienst. Weitere Informationen finden Sie in meinem vorherigen Artikel oder in der offiziellen MongoDB-Dokumentation

3. Stellen Sie eine Verbindung zu MongoDB her

Erstellen Sie eine app.js-Datei und fügen Sie den folgenden Code hinzu, um eine Verbindung zur Datenbank namens myNewDatabase auf der Serveradresse 192.168.0.243 und dem Mongodb-Port 27017 herzustellen


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

in der Befehlszeile Geben Sie den folgenden Befehl ein, um app.js auszuführen


node app.js

4. Fügen Sie das Dokument ein

in der App den folgenden Code zu js hinzufügen und die Methode insertMany verwenden, um 3 Dokumente zur Dokumentensammlung hinzuzufügen


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

Der Einfügebefehl gibt ein Objekt zurück, das die folgenden Attribute enthält:

  • result Das von MongoDB zurückgegebene Dokumentergebnis

  • ops Das Dokument mit der _id Feld hinzugefügt

  • Verbindung, in der der Einfügevorgang ausgeführt wird. Verwenden Sie die Verbindung

in app.js, um den folgenden Code zu aktualisieren, um die Methode insertDocuments aufzurufen


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

Verwenden Sie die Knoten-App in der Befehlszeile, um .js auszuführen

5. Fragen Sie alle Dokumente ab

Funktion „findDocuments“ hinzufügen


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

Die Funktion „findDocuments“ fragt alle Dokumente in der gesamten „Dokumenten“-Sammlung ab. Fügen Sie diese Funktion zur Rückruffunktion von MongoClient hinzu .connect


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. Abfragefilter zum Abfragen von Dokumenten verwenden

Dokumente abfragen nach ' a':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. Dokument aktualisieren


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

Die updateDocument-Methode aktualisiert das erste Dokument, das die Bedingung erfüllt, dass a 2 ist. Fügen Sie ein neues b-Attribut hinzu und setzen Sie es auf 1.

Fügen Sie die updateDocument-Methode zum Rückruf der MongoClient.connect-Methode hinzu


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

Löschen Sie das Dokument


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

Zu app.js hinzufügen


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. Indizes erstellen

Indizes können die Anwendungsleistung verbessern. Unten fügt Ihr Code einen Index für das Attribut „a“ hinzu


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

Update app.js


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

Das obige ist der detaillierte Inhalt vonAusführliches Tutorial zur Verwendung von Nodejs zum Herstellen einer Verbindung zur Mongodb-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn