Node.js MongoDB invoegen
Invoegen in verzameling
Om een record, of document zoals het in MongoDB wordt genoemd, in een verzameling in te voegen, gebruiken we de
insertOne()
methode.
Een document in MongoDB is hetzelfde als een record in MySQL
De eerste parameter van de insertOne()
methode is een object dat de naam(namen) en waarde(n) bevat van elk veld in het document dat u wilt invoegen.
Er is ook een callback-functie nodig waarmee u met eventuele fouten of het resultaat van de invoeging kunt werken:
Voorbeeld
Voeg een document toe aan de verzameling "klanten":
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();
});
});
Sla de bovenstaande code op in een bestand met de naam "demo_mongodb_insert.js" en voer het bestand uit:
Voer "demo_mongodb_insert.js" uit
C:\Users\Your Name>node demo_mongodb_insert.js
Wat je dit resultaat geeft:
1 document inserted
Opmerking: als u documenten probeert in te voegen in een verzameling die niet bestaat, zal MongoDB de verzameling automatisch maken.
Meerdere documenten invoegen
Om meerdere documenten in een verzameling in MongoDB in te voegen, gebruiken we de
insertMany()
methode.
De eerste parameter van de insertMany()
methode is een array van objecten die de gegevens bevatten die u wilt invoegen.
Er is ook een callback-functie nodig waarmee u met eventuele fouten of het resultaat van de invoeging kunt werken:
Voorbeeld
Voeg meerdere documenten toe aan de verzameling "klanten":
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();
});
});
Sla de bovenstaande code op in een bestand met de naam "demo_mongodb_insert_multiple.js" en voer het bestand uit:
Voer "demo_mongodb_insert_multiple.js" uit
C:\Users\Your Name>node demo_mongodb_insert_multiple.js
Wat je dit resultaat geeft:
Number of documents inserted: 14
Het resultaatobject
Bij het uitvoeren van de insertMany()
methode wordt een resultaatobject geretourneerd.
Het resultaatobject bevat informatie over de invloed van de invoeging op de database.
Het object dat uit het bovenstaande voorbeeld werd geretourneerd, zag er als volgt uit:
{
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 ]
}
De waarden van de eigenschappen kunnen als volgt worden weergegeven:
Voorbeeld
Retourneer het aantal ingevoegde documenten:
console.log(res.insertedCount)
Wat dit resultaat oplevert:
14
Het _id-veld
Als u geen _id
veld opgeeft, zal MongoDB er een voor u toevoegen en een unieke id toewijzen aan elk document.
In het bovenstaande voorbeeld is geen _id
veld opgegeven en zoals u kunt zien aan het resultaatobject, heeft MongoDB een unieke _id toegewezen aan elk document.
Als u het veld wel opgeeft _id
, moet de waarde uniek zijn voor elk document:
Voorbeeld
Voeg drie records in een "producten"-tabel in, met gespecificeerde
_id
velden:
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();
});
});
Sla de bovenstaande code op in een bestand met de naam "demo_mongodb_insert_id.js" en voer het bestand uit:
Voer "demo_mongodb_insert_id.js" uit
C:\Users\Your Name>node demo_mongodb_insert_id.js
Wat je dit resultaat geeft:
{
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 ]
}