Zoeken…


Opmerkingen

Dit zijn de basis CRUD-bewerkingen voor het gebruik van mongo db met nodejs.

Vraag: Zijn er andere manieren om te doen wat hier gebeurt?

Antwoord: Ja, er zijn talloze manieren om dit te doen.

Vraag: Is het gebruik van mangoest noodzakelijk ??

Antwoord: Nee. Er zijn andere pakketten beschikbaar die u kunnen helpen.

Vraag: Waar kan ik volledige documentatie over mangoest krijgen?

Antwoord: Klik hier

Verbinding maken met een database

Om verbinding te maken met een mongo-database vanuit een knooppunttoepassing hebben we mangoest nodig.

Mongoose installeren Ga naar de toot van uw toepassing en installeer mangoeste door

npm install mongoose

Vervolgens maken we verbinding met de database.

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

Nieuwe verzameling maken

Met Mongoose is alles afgeleid van een schema. Laten we een schema maken.

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

Onthoud dat methoden aan het schema moeten worden toegevoegd voordat het wordt gecompileerd met mongoose.model () zoals hierboven gedaan ..

Documenten invoegen

Voor het invoegen van een nieuw document in de verzameling maken we een object van het schema.

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

We bewaren het als volgt

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

Hiermee wordt een nieuw document in de verzameling ingevoegd

Lezing

Gegevens uit de verzameling lezen is heel eenvoudig. Alle gegevens van de verzameling ophalen.

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

Gegevens lezen met een voorwaarde

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

U kunt ook de tweede parameter opgeven als object van wat alle velden u nodig heeft

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

Eén document zoeken in een verzameling.

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

Eén document zoeken in een verzameling op id.

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

Updaten

Voor het bijwerken van collecties en documenten kunnen we een van deze methoden gebruiken:

methoden

  • bijwerken()
  • updateOne ()
  • updateMany ()
  • replaceOne ()

Bijwerken()

De methode update () wijzigt een of meerdere documenten (update-parameters)

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

Met deze bewerking wordt in de collectie 'lichten' gezocht naar een document met room Slaapkamer (1e parameter) . Het werkt dan is de gevonden documenten status woning aan On (2e parameter) en retourneert een WriteResult object dat ziet er als volgt uit:

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

UpdateOne

De methode UpdateOne () wijzigt EEN document (update parameters)

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

Met deze bewerking wordt in de verzameling 'landen' gezocht naar een document met het country Zweden (eerste parameter) . Vervolgens wordt het overeenkomende capital van de overeenkomende documenten bijgewerkt naar Stockholm (2e parameter) en wordt een WriteResult-object geretourneerd dat er als volgt uitziet:

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

UpdateMany

De methode UpdateMany () wijzigt meerdere documenten (updateparameters)

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

Deze bewerking werkt alle documenten (in een 'voedselcollectie') bij waar sold minder is dan 10 * (1e parameter) door de instelling sold te houden op 55 . Vervolgens wordt een WriteResult-object geretourneerd dat er als volgt uitziet:

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

a = Aantal overeenkomende documenten
b = Aantal gewijzigde documenten


ReplaceOne

Vervangt het eerste overeenkomende document (vervangend document)

Deze voorbeeldcollectie met de naam landen bevat 3 documenten:

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

De volgende bewerking vervangt het document { country: "Spain" } door document { country: "Finland" }

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

En keert terug:

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

Het voorbeeld collectie landen bevat nu:

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

verwijderen

Het verwijderen van documenten uit een verzameling in mangoest gebeurt op de volgende manier.

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow