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 _id
campo, 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
_id
campi 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 ]
}