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 _idveld opgeeft, zal MongoDB er een voor u toevoegen en een unieke id toewijzen aan elk document.

In het bovenstaande voorbeeld is geen _idveld 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 _idvelden:

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 ]
}