Inserimento di Node.js MongoDB


Inserisci nella raccolta

Per inserire un record, o un documento come viene chiamato in MongoDB, in una raccolta, utilizziamo il insertOne()metodo.

Un documento in MongoDB è lo stesso di un record in MySQL

Il primo parametro del insertOne()metodo è un oggetto contenente il/i nome/i e il/i valore/i di ogni campo nel documento che si desidera inserire.

Richiede anche una funzione di callback in cui puoi lavorare con eventuali errori o il risultato dell'inserimento:

Esempio

Inserisci un documento nella collezione "clienti":

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = { name: "Company Inc", address: "Highway 37" };
  dbo.collection("customers").insertOne(myobj, function(err, res) {
    if (err) throw err;
    console.log("1 document inserted");
    db.close();
  });
});

Salva il codice sopra in un file chiamato "demo_mongodb_insert.js" ed esegui il file:

Esegui "demo_mongodb_insert.js"

C:\Users\Your Name>node demo_mongodb_insert.js

Che ti darà questo risultato:

1 document inserted

Nota: se si tenta di inserire documenti in una raccolta che non esiste, MongoDB creerà la raccolta automaticamente.



Inserisci più documenti

Per inserire più documenti in una raccolta in MongoDB, utilizziamo il insertMany()metodo.

Il primo parametro del insertMany()metodo è un array di oggetti, contenente i dati che si desidera inserire.

Richiede anche una funzione di callback in cui puoi lavorare con eventuali errori o il risultato dell'inserimento:

Esempio

Inserisci più documenti nella raccolta "clienti":

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = [
    { name: 'John', address: 'Highway 71'},
    { name: 'Peter', address: 'Lowstreet 4'},
    { name: 'Amy', address: 'Apple st 652'},
    { name: 'Hannah', address: 'Mountain 21'},
    { name: 'Michael', address: 'Valley 345'},
    { name: 'Sandy', address: 'Ocean blvd 2'},
    { name: 'Betty', address: 'Green Grass 1'},
    { name: 'Richard', address: 'Sky st 331'},
    { name: 'Susan', address: 'One way 98'},
    { name: 'Vicky', address: 'Yellow Garden 2'},
    { name: 'Ben', address: 'Park Lane 38'},
    { name: 'William', address: 'Central st 954'},
    { name: 'Chuck', address: 'Main Road 989'},
    { name: 'Viola', address: 'Sideway 1633'}
  ];
  dbo.collection("customers").insertMany(myobj, function(err, res) {
    if (err) throw err;
    console.log("Number of documents inserted: " + res.insertedCount);
    db.close();
  });
});

Salva il codice sopra in un file chiamato "demo_mongodb_insert_multiple.js" ed esegui il file:

Esegui "demo_mongodb_insert_multiple.js"

C:\Users\Your Name>node demo_mongodb_insert_multiple.js

Che ti darà questo risultato:

Number of documents inserted: 14

L'oggetto risultato

Quando si esegue il insertMany()metodo, viene restituito un oggetto risultato.

L'oggetto risultato contiene informazioni su come l'inserimento ha influito sul database.

L'oggetto restituito dall'esempio sopra era simile a questo:

{
  result: { ok: 1, n: 14 },
  ops: [
    { name: 'John', address: 'Highway 71', _id: 58fdbf5c0ef8a50b4cdd9a84 },
    { name: 'Peter', address: 'Lowstreet 4', _id: 58fdbf5c0ef8a50b4cdd9a85 },
    { name: 'Amy', address: 'Apple st 652', _id: 58fdbf5c0ef8a50b4cdd9a86 },
    { name: 'Hannah', address: 'Mountain 21', _id: 58fdbf5c0ef8a50b4cdd9a87 },
    { name: 'Michael', address: 'Valley 345', _id: 58fdbf5c0ef8a50b4cdd9a88 },
    { name: 'Sandy', address: 'Ocean blvd 2', _id: 58fdbf5c0ef8a50b4cdd9a89 },
    { name: 'Betty', address: 'Green Grass 1', _id: 58fdbf5c0ef8a50b4cdd9a8a },
    { name: 'Richard', address: 'Sky st 331', _id: 58fdbf5c0ef8a50b4cdd9a8b },
    { name: 'Susan', address: 'One way 98', _id: 58fdbf5c0ef8a50b4cdd9a8c },
    { name: 'Vicky', address: 'Yellow Garden 2', _id: 58fdbf5c0ef8a50b4cdd9a8d },
    { name: 'Ben', address: 'Park Lane 38', _id: 58fdbf5c0ef8a50b4cdd9a8e },
    { name: 'William', address: 'Central st 954', _id: 58fdbf5c0ef8a50b4cdd9a8f },
    { name: 'Chuck', address: 'Main Road 989', _id: 58fdbf5c0ef8a50b4cdd9a90 },
    { name: 'Viola', address: 'Sideway 1633', _id: 58fdbf5c0ef8a50b4cdd9a91 } ],
  insertedCount: 14,
  insertedIds: [
    58fdbf5c0ef8a50b4cdd9a84,
    58fdbf5c0ef8a50b4cdd9a85,
    58fdbf5c0ef8a50b4cdd9a86,
    58fdbf5c0ef8a50b4cdd9a87,
    58fdbf5c0ef8a50b4cdd9a88,
    58fdbf5c0ef8a50b4cdd9a89,
    58fdbf5c0ef8a50b4cdd9a8a,
    58fdbf5c0ef8a50b4cdd9a8b,
    58fdbf5c0ef8a50b4cdd9a8c,
    58fdbf5c0ef8a50b4cdd9a8d,
    58fdbf5c0ef8a50b4cdd9a8e,
    58fdbf5c0ef8a50b4cdd9a8f
    58fdbf5c0ef8a50b4cdd9a90,
    58fdbf5c0ef8a50b4cdd9a91 ]
}

I valori delle proprietà possono essere visualizzati in questo modo:

Esempio

Restituisci il numero di documenti inseriti:

console.log(res.insertedCount)

Che produrrà questo risultato:

14

Il campo _id

Se non specifichi un _idcampo, MongoDB ne aggiungerà uno per te e assegnerà un ID univoco per ogni documento.

Nell'esempio sopra non _idè stato specificato alcun campo e, come puoi vedere dall'oggetto risultato, MongoDB ha assegnato un _id univoco per ogni documento.

Se specifichi il campo, il valore deve essere univoco per ogni documento :_id

Esempio

Inserisci tre record in una tabella "prodotti", con i _idcampi specificati:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myobj = [
    { _id: 154, name: 'Chocolate Heaven'},
    { _id: 155, name: 'Tasty Lemon'},
    { _id: 156, name: 'Vanilla Dream'}
  ];
  dbo.collection("products").insertMany(myobj, function(err, res) {
    if (err) throw err;
    console.log(res);
    db.close();
  });
});

Salva il codice sopra in un file chiamato "demo_mongodb_insert_id.js" ed esegui il file:

Esegui "demo_mongodb_insert_id.js"

C:\Users\Your Name>node demo_mongodb_insert_id.js

Che ti darà questo risultato:

{
  result: { ok: 1, n: 3 },
  ops: [
    { _id: 154, name: 'Chocolate Heaven },
    { _id: 155, name: 'Tasty Lemon },
    { _id: 156, name: 'Vanilla Dream } ],
  insertedCount: 3,
  insertedIds: [
    154,
    155,
    156 ]
}