Heim > Web-Frontend > js-Tutorial > Hauptteil

Implementierung der Verbindung zur Mongodb-Datenbank mithilfe von Nodejs

不言
Freigeben: 2018-06-30 11:48:28
Original
1298 Leute haben es durchsucht

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
Nach dem Login kopieren

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

npm init
Nach dem Login kopieren

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

npm install mongodb --save
Nach dem Login kopieren

Das Mongodb-Treiberpaket wird in node_modules im aktuellen Verzeichnis installiert

2. Starten Sie 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 MongoDB

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();
});
Nach dem Login kopieren

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

node app.js
Nach dem Login kopieren

4 . Dokument einfügen

Fügen Sie den folgenden Code in app.js hinzu und verwenden Sie die Methode insertMany, 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);
  });
};
Nach dem Login kopieren

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

  • Ergebnis Dokumentergebnis zurückgegeben von MongoDB

  • ops Dokument mit _id Feld hinzugefügt

  • Verbindung Die Verbindung, die zum Ausführen des Einfügevorgangs verwendet wird

Aktualisieren Sie den folgenden Code in app.js, 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();
 });
});
Nach dem Login kopieren

Verwenden Sie node app.js in der Befehlszeile, um

5 auszuführen. Fragen Sie alle Dokumente ab

FindDocuments-Funktion 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);
  });
};
Nach dem Login kopieren

Die FindDocuments-Funktion fragt alle Dokumente in allen „Dokumenten“-Sammlungen ab und fügt diese Funktion der Rückruffunktion hinzu von MongoClient.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();
  });
 });
});
Nach dem Login kopieren

6. Abfragefilter zum Abfragen von Dokumenten verwenden

Abfrage Dokumente für '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);
 });   
}
Nach dem Login kopieren

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);
  });
};
Nach dem Login kopieren

UpdateDocument-Methodenaktualisierung Fügen Sie für das erste Dokument, das die Bedingung erfüllt, dass a 2 ist, ein 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();
    });
  });
});
Nach dem Login kopieren

8. 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);
  });
};
Nach dem Login kopieren

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();
   });
  });
 });
});
Nach dem Login kopieren

9. Erstellen Sie Indizes

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

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

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();
    });
  });
});
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Methoden zur Verhinderung der SQL-Injection in Node-MySQL

NodeJs-Formulardatenformat zum Übertragen von Dateien Methode

Das obige ist der detaillierte Inhalt vonImplementierung der Verbindung zur Mongodb-Datenbank mithilfe von Nodejs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage