Heim >Web-Frontend >js-Tutorial >Beherrschen Sie die Hinzufügungs-, Lösch-, Änderungs- und Abfragefunktionen von NodeJS, die Mongodb betreiben, vollständig

Beherrschen Sie die Hinzufügungs-, Lösch-, Änderungs- und Abfragefunktionen von NodeJS, die Mongodb betreiben, vollständig

小云云
小云云Original
2017-12-23 09:11:471925Durchsuche

In diesem Artikel werden hauptsächlich die Hinzufügungs-, Lösch-, Änderungs- und Abfragefunktionen von NodeJS beim Betrieb von Mongodb vorgestellt. Er analysiert kurz die Installation des Mongodb-Moduls und analysiert die damit verbundenen Implementierungsfähigkeiten von NodeJS beim Betrieb der Mongodb-Datenbank zum Durchführen von Hinzufügungen, Löschungen usw. Ich hoffe, dass Freunde, die es benötigen, darauf zurückgreifen können.

Entsprechende Module installieren

Wenn Sie dies verwenden, müssen Sie zunächst die erforderlichen Module selbst installieren und

im Stammverzeichnis eingeben


npm install mongodb --save

Installieren Sie das Modul. Nach erfolgreicher Installation können Sie mit den folgenden Schritten fortfahren.

Einführung in Dateien

Das Folgende ist der relevante Code, den ich geschrieben habe. Legen Sie ihn in das entsprechende Verzeichnis, das Sie zitieren können. Ich habe ihn eingefügt im Stammverzeichnis des Express-Verzeichnisses


function Mongo(options) {
  this.settings = {
    url: 'mongodb://localhost:27017/jk',
    MongoClient:require('mongodb').MongoClient,
    assert:require('assert')
  };
  for(let i in options){
    this.settings[i] = options[i];
  }
  this._run = function (fun) {
    let that = this;
    let settings = this.settings;
    this.settings.MongoClient.connect(this.settings.url, function (err, db) {
      settings.assert.equal(null, err);
      console.log("Connected correctly to server");
      fun(db, function () {
        db.close();
      });
    });
  };
  this.insert = function (collectionName, data, func) {
    //增加数据
    let insertDocuments = function (db, callback) {
      let collection = db.collection(collectionName);
      collection.insertMany([
        data
      ], function (err, result) {
        if (!err) {
          func(true);
        } else {
          func(false);
        }
        callback(result);
      });
    };
    this._run(insertDocuments);
  };
  this.update = function (collectionName, updateData, data, func) {
    //更新数据
    let updateDocument = function (db, callback) {
      let collection = db.collection(collectionName);
      collection.updateOne(updateData
        , {$set: data}, function (err, result) {
          if (!err) {
            func(true);
          } else {
            func(false);
          }
          callback(result);
        });
    };
    this._run(updateDocument);
  };
  this.delete = function (collectionName, data, func) {
    //删除数据
    let deleteDocument = function (db, callback) {
      let collection = db.collection(collectionName);
      collection.deleteOne(data, function (err, result) {
        if (!err) {
          func(true);
        } else {
          func(false);
        }
        callback(result);
      });
    };
    this._run(deleteDocument);
  };
  this.find = function (collectionName, data, func) {
    //查找数据
    let findDocuments = function (db, callback) {
      // Get the documents collection
      let collection = db.collection(collectionName);
      // Find some documents
      collection.find(data).toArray(function (err, docs) {
        if (!err) {
          func(true,docs);
        }
        else {
          func(false, err);
        }
        callback(docs);
      });
    };
    this._run(findDocuments);
  };
}
module.exports = Mongo;

Ich habe es in einer Datei namens server.js

mit gespeichert

Wir führen das Modul zuerst ein, wenn wir die Seite verwenden müssen. Ich habe es beispielsweise in der Routing-Datei index.js eingeführt:


const Server = require("../server.js");

Dann benötigen wir ein Instanzobjekt wie folgt:


let server = new Server();

Wenn Sie zugehörige Informationen konfigurieren müssen, können Sie beim Instanziieren eine Objektkonfiguration übergeben. und Sie können die Datenbankadresse konfigurieren:


let server = new Server({url:"mongodb://localhost:27017/mydb"});

kapselt vier Methoden: Hinzufügen, Löschen, Ändern und Überprüfen, nämlich

Methode hinzufügen


server.insert(数据表名,需要插入的数据(键值对的对象),回调函数);

Methode aktualisieren


server.update(数据表名,查询的数据(对象),更新的数据(对象),回调函数);

Methode löschen


server.delete(数据表名,查询的数据(对象),回调函数);

Methode suchen


server.find(数据表名,查询的数据(对象),回调函数);

Die Rückruffunktion gibt zwei Werte zurück, ob die Verarbeitung erfolgreich war, der zweite Wert, die Suche gibt die gefundene Nummer zurück und andere geben die Anzahl der erfolgreichen Verarbeitung zurück (jetzt wird jeweils nur einer verarbeitet)

Anwendungsfall

Wenn ich beispielsweise Daten in einer Route finden muss, benötige ich Folgendes:


server.find("users",{username:"username"},function (bool,data) {
    if(bool){
      console.log("查询到数据为"+data.length+"条");
    }
    else{
      console.log(data);
    }
  });
});

Der obige Code fragt die Daten des Feldes ab, in dem Benutzername in der Benutzertabelle steht. Bei Erfolg werden die Daten später als Array zurückgegeben. Wenn ein Fehler auftritt, wird der Datenfehler direkt zurückgegeben .

Verwandte Empfehlungen:

PHP-Datenbank-Hinzufügungs-, Lösch-, Änderungs- und Abfragemethoden

AngularJs-Hinzufügungs-, Lösch-, Änderungs- und Abfragemethode

Implementierung der grundlegenden Schreibmethode zum Hinzufügen, Löschen, Ändern und Abfragen von MySql in NodeJS

Das obige ist der detaillierte Inhalt vonBeherrschen Sie die Hinzufügungs-, Lösch-, Änderungs- und Abfragefunktionen von NodeJS, die Mongodb betreiben, vollständig. 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