Suche…


Bemerkungen

Dies sind die grundlegenden CRUD-Operationen für die Verwendung der Mongo-Datenbank mit Nodejs.

Frage: Gibt es andere Möglichkeiten, was Sie hier tun können?

Antwort: Ja, dafür gibt es zahlreiche Möglichkeiten.

Frage: Ist die Verwendung von Mungo notwendig?

Antwort: Nein. Es gibt andere Pakete, die Ihnen helfen können.

Frage: Wo bekomme ich eine vollständige Dokumentation von Mungo?

Antwort: Hier klicken

Verbindung zu einer Datenbank herstellen

Um eine Verbindung zu einer Mongo-Datenbank von der Knotenanwendung herzustellen, benötigen wir Mongoose.

Installation von Mongoose Gehen Sie zum Toot Ihrer Anwendung und installieren Sie Mongoose von

npm install mongoose

Als Nächstes verbinden wir uns mit der Datenbank.

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

Neue Kollektion erstellen

Bei Mongoose wird alles von einem Schema abgeleitet. Lass uns ein Schema erstellen.

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

Denken Sie daran, dass Methoden zum Schema hinzugefügt werden müssen, bevor Sie es wie oben beschrieben mit mongoose.model () kompilieren.

Dokumente einfügen

Um ein neues Dokument in die Sammlung einzufügen, erstellen wir ein Objekt des Schemas.

var Auto = require('models/auto')
var autoObj = new Auto({
    name: "NewName", 
    countOf: 10
});

Wir speichern es wie folgt

autoObj.save(function(err, insertedAuto) {
    if (err) return console.error(err);
    insertedAuto.speak();
    // output: Hello this is NewName and I have counts of 10
});

Dadurch wird ein neues Dokument in die Sammlung eingefügt

lesen

Das Lesen von Daten aus der Sammlung ist sehr einfach. Alle Daten der Sammlung abrufen.

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

Daten mit einer Bedingung lesen

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

Sie können auch den zweiten Parameter als Objekt aller Felder angeben, die Sie benötigen

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

Ein Dokument in einer Sammlung suchen.

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

Ein Dokument in einer Sammlung nach ID suchen.

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

Aktualisierung

Zur Aktualisierung von Sammlungen und Dokumenten können wir eine der folgenden Methoden verwenden:

Methoden

  • aktualisieren()
  • updateOne ()
  • updateMany ()
  • replaceOne ()

Aktualisieren()

Die update () -Methode ändert ein oder mehrere Dokumente (Aktualisierungsparameter).

db.lights.update(
   { room: "Bedroom" },
   { status: "On" }
)

Bei diesem Vorgang wird in der Sammlung "Lichter" nach einem Dokument gesucht, in dem der room Schlafzimmer ist (erster Parameter) . Es aktualisiert dann die passenden Dokumente status - Eigenschaft auf On (2.e Parameter) und gibt ein Write Objekt , das wie folgt aussieht:

{ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }

UpdateOne

Die UpdateOne () -Methode ändert EIN Dokument (Aktualisierungsparameter).

db.countries.update(
   { country: "Sweden" },
   { capital: "Stockholm" }
)

Bei diesem Vorgang wird die Sammlung "Länder" nach einem Dokument durchsucht, in dem das country Schweden ist (1. Parameter) . Es aktualisiert dann die passenden Dokumente Eigentum capital Stockholm (2.e Parameter) und gibt ein Write Objekt , das wie folgt aussieht:

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

UpdateMany

Die UpdateMany () -Methode ändert mehrere Dokumente (Aktualisierungsparameter).

db.food.updateMany(
   { sold: { $lt: 10 } },
   { $set: { sold: 55 } }
)

Dieser Vorgang aktualisiert alle Dokumente (in einer ‚Lebensmittel‘ Sammlung) , wo sold ist weniger als 10 * (1. Parameter) durch Einstellung sold bis 55. Dann wird ein WriteResult-Objekt zurückgegeben, das wie folgt aussieht:

{ "acknowledged" : true, "matchedCount" : a, "modifiedCount" : b }

a = Anzahl übereinstimmender Dokumente
b = Anzahl der modifizierten Dokumente


Ersetzen Sie eine

Ersetzt das erste übereinstimmende Dokument (Ersatzdokument)

Diese Beispielsammlung mit dem Namen Länder enthält 3 Dokumente:

{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Spain" }

Die folgende Operation ersetzt das Dokument { country: "Spain" } durch Dokument { country: "Finland" }

db.countries.replaceOne(
   { country: "Spain" },
   { country: "Finland" }
)

Und kehrt zurück:

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

Die Beispielsammlung Länder jetzt enthält:

{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Finland" }

Löschen

Das Löschen von Dokumenten aus einer Sammlung in Moose erfolgt auf folgende Weise.

Auto.remove({_id:123}, function(err, result){
    if (err) return console.error(err);
    console.log(result); // this will specify the mongo default delete result.
});


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow