Node.js
Node.JS und MongoDB.
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.
});