MongoDB Objektien joukko käyttämällä insert()-komentoa esimerkin kanssa

⚡ Älykäs yhteenveto

MongoDB Objektitaulukon luominen insert()-funktiolla näyttää, kuinka useita dokumentteja lisätään kokoelmaan yhdellä operaatiolla. Se tallentaa työntekijätietojen taulukon, upottaa taulukoita dokumentin sisään ja näyttää tulokset siististi JSON-tulostusfunktion avulla.

  • 📥 Joukkolisäys: insert()-metodi lisää kokoelmaan taulukon asiakirjoja yhdellä tehokkaalla operaatiolla.
  • 🧾 Asiakirjamalli: Jokainen dokumentti on joukko kenttä-arvo-pareja, ja MongoDB lisää automaattisesti yksilöllisen _id:n.
  • 🗂️ Upotetut taulukot: Taulukko voi myös sijaita kenttänä yhden dokumentin sisällä, keeping toisiinsa liittyviä arvoja yhdessä.
  • 🔁 Nykyaikaiset menetelmät: insertOne() ja insertMany() ovat nykyiset ja selkeämmät korvaajat vanhalle insert()-metodille.
  • 🖨️ Readable lähtö: forEach(printjson)-komento tulostaa jokaisen dokumentin siistissä ja helppolukuisessa JSON-muodossa.

Mikä on insert()-metodi? MongoDB?

Insert()-metodi MongoDB lisää yhden tai useamman dokumentin kokoelmaan. Dokumentti on joukko kenttä-arvo-pareja, jotka on tallennettu BSON-muotoon, joka on JSON:n binäärimuoto. Kun välität yhden dokumentin, insert() tallentaa kyseisen yhden tietueen; kun välität taulukon dokumentteja, se tallentaa ne kaikki yhdellä toiminnolla, mikä on nopeampaa kuin niiden lisääminen yksi kerrallaan.

Metodi suoritetaan tiettyä kokoelmaa vastaan ​​käyttämällä mallia db.collection.insert(). Jos kohdekokoelmaa ei vielä ole olemassa, MongoDB luo sen automaattisesti ensimmäisen lisäyksen yhteydessä. Jokainen dokumentti saa myös yksilöllisen _id-kentän, jos et anna sellaista, jotta jokainen tietue voidaan tunnistaa myöhemmin.

Vaikka insert() toimii edelleen, uudemmat MongoDB versiot tarjoavat selkeämpiä korvikkeita funktioille insertOne() ja insertMany(). Alla olevissa esimerkeissä insert()-funktiota käytetään lisäämään taulukko työntekijädokumentteja ja näyttämään tulokset luettavassa JSON-muodossa.

Dokumenttijoukon lisääminen

"Insert"-komentoa voidaan käyttää myös useiden asiakirjojen lisäämiseen kokoelmaan kerralla. Alla olevaa koodiesimerkkiä voidaan käyttää useiden asiakirjojen lisäämiseen kerralla.

Seuraava esimerkki näyttää, kuinka tämä voidaan tehdä,

Vaihe 1) Luo JavaKäsikirjoitus muuttuja nimeltä myEmployee dokumenttijoukon säilyttämiseen

Vaihe 2) Lisää muuttujaan tarvittavat asiakirjat Kentän nimellä ja arvoilla

Vaihe 3) Käytä insert-komentoa lisätäksesi asiakirjajoukon kokoelmaan

var myEmployee=
	[
		{
			"Employeeid" : 1,
			"EmployeeName" : "Smith"
		},
		{
			"Employeeid"   : 2,
			"EmployeeName" : "Mohan"
		},
		{
			"Employeeid"   : 3,
			"EmployeeName" : "Joe"
		},
	];

	db.Employee.insert(myEmployee);

Jos komento suoritetaan onnistuneesti, seuraava Output näytetään

MongoDB Objektien joukko käyttämällä insert()

Tulos osoittaa, että nämä 3 asiakirjaa lisättiin kokoelmaan.

Kuinka lisätä taulukko dokumentin sisään

Erillisten asiakirjojen lisäämisen lisäksi MongoDB voit tallentaa taulukon kenttänä yhden asiakirjan sisällä. Tästä on hyötyä, kun yksi tietue sisältää luonnostaan ​​luettelon arvoista, kuten työntekijän, jolla on useita taitoja, tai opiskelijan, joka on ilmoittautunut useille kursseille. Koska MongoDB käyttää joustavaa dokumenttimallia, jossa taulukko sijaitsee suoraan objektin sisällä erillisen taulukon sijaan, mikä pitää toisiinsa liittyvät tiedot yhdessä.

Seuraava esimerkki lisää yhden työntekijäasiakirjan, joka sisältää Skills-nimisen taulukkokentän:

db.Employee.insert(
   {
      "Employeeid" : 4,
      "EmployeeName" : "Alan",
      "Skills" : [ "MongoDB", "Node.js", "Express" ]
   }
);

Tämän asiakirjan osat toimivat seuraavasti:

  • Työntekijätunnus ja Työntekijän nimi ovat tavallisia kenttä-arvo-pareja.
  • Taidot on taulukkokenttä, joka sisältää kolme merkkijonoarvoa hakasulkeiden sisällä.
  • Koko dokumentti, mukaan lukien upotettu taulukko, tallennetaan yhdellä lisäystoiminnolla.

Tietueen lisäämisen jälkeen voit vahvistaa upotetun taulukon find-kyselyllä, joka tulostaa tuloksen JSON-muodossa:

db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)

Tuloste näyttää Skills-taulukon työntekijädokumentin sisällä. Later, voit lisätä uusia arvoja taulukkoon $push-operaattorilla tai lukea yksittäisen elementin sen indeksisijainnin perusteella. Yhdistettyjen arvojen tallentaminen tällä tavalla pitää jokaisen dokumentin itsenäisenä, vähentää liitosten tarvetta kokoelmien välillä ja helpottaa tietojen lukemista ja ylläpitoa.

lisää() vs. lisääYksi() vs. lisääMany()

MongoDB tarjoaa kolme toisiinsa liittyvää menetelmää tietojen lisäämiseen. Alla oleva taulukko vertailee niitä, jotta voit valita oikean:

Menetelmä Tarkoitus esimerkki
lisää () Perinteinen menetelmä, joka lisää yhden dokumentin tai dokumenttitaulukon. Se toimii edelleen, mutta on vanhentunut uudemmissa ajureissa. db.Työntekijä.insert(myEmployee)
lisääYksi() Lisää täsmälleen yhden dokumentin ja palauttaa sen lisätyn _id:n. Suositellaan yksittäisille tietueille. db.Employee.insertOne({ … })
lisääMany() Lisää taulukon dokumentteja yhdellä kutsulla ja palauttaa kaikki lisätyt _id:t. Suositellaan joukkolisäyksille. db.Employee.insertMany([ { … }, { … } ])

Uusissa projekteissa käytä insertOne()- ja insertMany()-metodeja, koska ne antavat selkeämmän tarkoituksen ja paremman virheraportoinnin. Insert()-metodi on edelleen käytettävissä pääasiassa taaksepäin yhteensopivuuden vuoksi vanhempien tutoriaalien ja skriptien kanssa.

Tulostus JSON-muodossa

JSON on muoto nimeltä JavaScript Object Notation, ja se on vain tapa tallentaa tietoja järjestelmällisesti ja helposti luettavalla tavalla. Muissa esimerkeissämme aiomme käyttää JSON-tulostustoimintoa nähdäksemme tulosteen paremmassa muodossa.

Katsotaanpa esimerkkiä tulostamisesta JSON-muodossa

db.Employee.find().forEach(printjson)

Code Selitys:

  1. Ensimmäinen muutos on forEach()-nimisen funktion liittäminen find()-funktioon. Tämä varmistaa, että jokainen kokoelman dokumentti käydään läpi erikseen. Tällä tavoin voit hallita paremmin sitä, mitä voit tehdä kullekin kokoelman dokumentille.
  2. Toinen muutos on laittaa printjson-komento forEach-käskyyn. Tämä aiheuttaa sen, että jokainen kokoelman asiakirja näytetään JSON-muodossa.

Jos komento suoritetaan onnistuneesti, seuraava Output näytetään

lähtö:

Tulostus JSON-muodossa

Tulos osoittaa selvästi, että kaikki asiakirjat tulostetaan JSON-tyylillä.

UKK

Kyllä. Dokumenttitaulukon välittäminen insert()-funktiolle lisää ne kaikki yhdellä operaatiolla. Tämä joukkolisäys on nopeampi kuin insert():n kutsuminen erikseen kullekin dokumentille, vaikka insertMany() onkin nyt ensisijainen menetelmä.

Kyllä. Jos dokumentissa ei ole _id-kenttää, MongoDB luo sille automaattisesti yksilöllisen ObjectId:n lisäyksen aikana, joten jokainen tallennettu tietue voidaan tunnistaa ja hakea myöhemmin.

Oletusarvoisesti MongoDB suorittaa järjestetyn lisäyksen. Se lisää dokumentit annetussa järjestyksessä ja pysähtyy ensimmäiseen virheeseen jättäen loput dokumentit lisäämättä. Asettamalla järjestetty arvoksi false jatkaa virheiden ohittamista.

Kyllä. Tekoälytyökalut voivat muuntaa datasi selkokielisen kuvauksen insertOne()- tai insertMany()-lausekkeiksi, mukaan lukien upotetut taulukot. Tarkista aina luodut kentät ja tietotyypit ennen niiden suorittamista tietokannassa.

Tekoäly voi ehdottaa kyselymalliesi perusteella, upotetaanko taulukot dokumenttiin vai viitataanko erillisiin kokoelmiin. Tämä auttaa aloittelijoita mallintamaan tietoja tehokkaasti välttäen samalla tarpeetonta päällekkäisyyttä tai liian syvää sisäkkäisyyttä.

Tiivistä tämä viesti seuraavasti: