Node.js MongoDB- insetsel
Voeg in versameling in
Om 'n rekord, of dokument soos dit in MongoDB genoem word, in 'n versameling in te voeg, gebruik ons die
insertOne()
metode.
'n Dokument in MongoDB is dieselfde as 'n rekord in MySQL
Die eerste parameter van die insertOne()
metode is 'n objek wat die naam(e) en waarde(s) bevat van elke veld in die dokument wat jy wil invoeg.
Dit neem ook 'n terugbelfunksie waar u met enige foute of die resultaat van die invoeging kan werk:
Voorbeeld
Voeg 'n dokument in die "kliënte"-versameling in:
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();
});
});
Stoor die kode hierbo in 'n lêer genaamd "demo_mongodb_insert.js" en voer die lêer uit:
Begin "demo_mongodb_insert.js"
C:\Users\Your Name>node demo_mongodb_insert.js
Wat vir jou hierdie resultaat sal gee:
1 document inserted
Let wel: As jy probeer om dokumente in 'n versameling in te voeg wat nie bestaan nie, sal MongoDB die versameling outomaties skep.
Voeg verskeie dokumente in
Om veelvuldige dokumente in 'n versameling in MongoDB in te voeg, gebruik ons die
insertMany()
metode.
Die eerste parameter van die insertMany()
metode is 'n reeks voorwerpe wat die data bevat wat jy wil invoeg.
Dit neem ook 'n terugbelfunksie waar u met enige foute of die resultaat van die invoeging kan werk:
Voorbeeld
Voeg veelvuldige dokumente in die "kliënte"-versameling in:
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();
});
});
Stoor die kode hierbo in 'n lêer genaamd "demo_mongodb_insert_multiple.js" en hardloop die lêer:
Begin "demo_mongodb_insert_multiple.js"
C:\Users\Your Name>node demo_mongodb_insert_multiple.js
Wat vir jou hierdie resultaat sal gee:
Number of documents inserted: 14
Die resultaatvoorwerp
Wanneer die insertMany()
metode uitgevoer word, word 'n resultaatobjek teruggestuur.
Die resultaatvoorwerp bevat inligting oor hoe die invoeging die databasis beïnvloed het.
Die voorwerp wat uit die voorbeeld hierbo teruggekeer is, het soos volg gelyk:
{
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 ]
}
Die waardes van die eiendomme kan soos volg vertoon word:
Voorbeeld
Gee die aantal ingevoegde dokumente terug:
console.log(res.insertedCount)
Wat hierdie resultaat sal lewer:
14
Die _id-veld
As jy nie 'n _id
veld spesifiseer nie, sal MongoDB een vir jou byvoeg en 'n unieke ID vir elke dokument toewys.
In die voorbeeld hierbo is geen _id
veld gespesifiseer nie, en soos u uit die resultaatvoorwerp kan sien, het MongoDB 'n unieke _id vir elke dokument toegeken.
As jy wel die veld spesifiseer _id
, moet die waarde uniek wees vir elke dokument:
Voorbeeld
Voeg drie rekords in 'n "produkte"-tabel in, met gespesifiseerde
_id
velde:
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();
});
});
Stoor die kode hierbo in 'n lêer genaamd "demo_mongodb_insert_id.js" en hardloop die lêer:
Begin "demo_mongodb_insert_id.js"
C:\Users\Your Name>node demo_mongodb_insert_id.js
Wat vir jou hierdie resultaat sal gee:
{
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 ]
}