Ricerca…


Osservazioni

Queste sono le operazioni CRUD di base per l'uso di mongo db con nodejs.

Domanda: ci sono altri modi in cui puoi fare ciò che viene fatto qui ??

Risposta: Sì, ci sono numerosi modi per farlo.

Domanda: Sta usando la mangusta ??

Risposta: No. Ci sono altri pacchetti disponibili che possono aiutarti.

Domanda: dove posso ottenere la documentazione completa di mangusta ??

Risposta: clicca qui

Connessione a un database

Per connettersi a un database mongo dall'applicazione nodo richiediamo mangusta.

Installazione di Mongoose Vai al toot della tua applicazione e installa mangusta di

npm install mongoose

Quindi ci colleghiamo al 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');
                    }
                });  

Creazione di una nuova collezione

Con Mongoose, tutto è derivato da uno schema. Consente di creare uno schema.

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

Ricorda che i metodi devono essere aggiunti allo schema prima di compilarlo con mongoose.model () come fatto sopra.

Inserimento di documenti

Per inserire un nuovo documento nella collezione, creiamo un oggetto dello schema.

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

Lo salviamo come il seguente

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

Questo inserirà un nuovo documento nella collezione

Lettura

Leggere i dati dalla collezione è molto semplice. Ottenere tutti i dati della collezione.

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

Lettura dei dati con una condizione

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

È inoltre possibile specificare il secondo parametro come oggetto di ciò che tutti i campi necessari

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

Trovare un documento in una raccolta.

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

Trovare un documento in una raccolta tramite 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); 
})

In aggiornamento

Per l'aggiornamento di raccolte e documenti possiamo utilizzare uno di questi metodi:

metodi

  • aggiornare()
  • updateOne ()
  • updateMany ()
  • replaceOne ()

Aggiornare()

Il metodo update () modifica uno o più documenti (parametri di aggiornamento)

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

Questa operazione cerca la raccolta 'luci' per un documento in cui room è Bedroom (1 ° parametro) . Quindi aggiorna la proprietà dello status documenti corrispondenti su On (2 ° parametro) e restituisce un oggetto WriteResult simile al seguente:

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

UpdateOne

Il metodo UpdateOne () modifica UN documento (parametri di aggiornamento)

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

Questa operazione cerca nella raccolta "Paesi" un documento in cui il country è la Svezia (1 ° parametro) . Quindi aggiorna la capital proprietà dei documenti corrispondenti a Stoccolma (2 ° parametro) e restituisce un oggetto WriteResult simile al seguente:

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

UpdateMany

Il metodo UpdateMany () modifica i documenti multible (parametri di aggiornamento)

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

Questa operazione aggiorna tutti i documenti (in una raccolta "cibo") dove la sold è inferiore a 10 * (1 ° parametro) impostando sold a 55 . Quindi restituisce un oggetto WriteResult simile al seguente:

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

a = Numero di documenti corrispondenti
b = numero di documenti modificati


ReplaceOne

Sostituisce il primo documento di corrispondenza (documento sostitutivo)

Questo esempio di raccolta denominata Paesi contiene 3 documenti:

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

La seguente operazione sostituisce il documento { country: "Spain" } con documento { country: "Finland" }

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

E ritorna:

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

I Paesi di raccolta di esempio ora contengono:

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

Eliminazione

L'eliminazione di documenti da una raccolta in mangusta avviene nel modo seguente.

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow