MongoDB Objektide massiiv kasutades insert() koos näitega
⚡ Nutikas kokkuvõte
MongoDB Objektide massiiv funktsiooni insert() abil näitab, kuidas lisada kollektsiooni mitu dokumenti ühe toiminguga. See salvestab töötajate kirjete massiivi, manustab massiivid dokumendi sisse ja kuvab tulemused selgelt JSON-i printimisfunktsiooni abil.
Mis on insert() meetod? MongoDB?
Insert() meetod MongoDB lisab kollektsiooni ühe või mitu dokumenti. Dokument on välja-väärtuse paaride kogum, mis on salvestatud BSON-vormingus, mis on JSON-i binaarne vorm. Ühe dokumendi edastamisel salvestab insert() selle ühe kirje; dokumentide massiivi edastamisel salvestab see need kõik ühe toiminguga, mis on kiirem kui nende ükshaaval sisestamine.
Meetodit käivitatakse kindla kollektsiooni suhtes, kasutades mustrit db.collection.insert(). Kui sihtkogu pole veel olemas, MongoDB loob selle automaatselt esimese sisestamise ajal. Iga dokument saab ka unikaalse _id välja, kui te seda ei sisesta, nii et iga kirjet saab hiljem tuvastada.
Kuigi insert() ikka töötab, on uuemad MongoDB versioonid pakuvad selgemate asendustena funktsioone insertOne() ja insertMany(). Allolevates näidetes kasutatakse funktsiooni insert() töötajate dokumentide massiivi lisamiseks ja seejärel tulemuste kuvamiseks loetavas JSON-vormingus.
Dokumentide massiivi lisamine
Käsku "insert" saab kasutada ka mitme dokumendi lisamiseks kogusse korraga. Allolevat koodinäidet saab kasutada mitme dokumendi korraga sisestamiseks.
Järgmine näide näitab, kuidas seda teha,
Step 1) Loo JavaScript muutuja nimega myEmployee, mis hoiab dokumentide massiivi
Step 2) Lisa muutujale vajalikud dokumendid välja nime ja väärtustega
Step 3) Dokumentide massiivi lisamiseks kogusse kasutage käsku insert
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Kui käsk on edukalt täidetud, kuvatakse järgmine väljund
Väljund näitab, et need 3 dokumenti lisati kogusse.
Kuidas dokumendi sisse massiivi lisada
Lisaks eraldi dokumentide massiivi lisamisele MongoDB võimaldab salvestada massiivi väljana ühte dokumenti. See on kasulik, kui üks kirje sisaldab loomulikult väärtuste loendit, näiteks töötaja, kellel on mitu oskust, või üliõpilane, kes on registreerunud mitmele kursusele. Sest MongoDB kasutab paindlikku dokumendimudelit, massiiv asub otse objekti sees, mitte eraldi tabelis, mis hoiab seotud andmed koos.
Järgmises näites lisatakse üks töötaja dokument, mis sisaldab massiivivälja nimega Oskused:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Selle dokumendi osad toimivad järgmiselt:
- Töötaja ID ja TöötajaNimi on tavalised välja-väärtuse paarid.
- Oskused on massiiviväli, mis hoiab nurksulgudes kolme stringiväärtust.
- Kogu dokument, sealhulgas manustatud massiiv, salvestatakse ühe lisamistoiminguga.
Pärast kirje lisamist saate manustatud massiivi kinnitada otsingupäringuga, mis prindib tulemuse JSON-vormingus:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Väljund näitab töötaja dokumendi sisse pesastatud oskuste massiivi. Later, saate massiivi uusi väärtusi lisada operaatoriga $push või lugeda üksikut elementi selle indeksipositsiooni järgi. Ühendatud väärtuste selline salvestamine hoiab iga dokumendi iseseisvana, vähendab vajadust kollektsioonidevaheliste ühenduste järele ning muudab andmete lugemise ja haldamise lihtsamaks.
sisesta() vs sisestaOne() vs sisestaMany()
MongoDB pakub andmete lisamiseks kolme omavahel seotud meetodit. Allolev tabel võrdleb neid, et saaksite valida õige:
| Meetod | Eesmärk | Näide |
|---|---|---|
| sisesta () | Pärandmeetod, mis lisab ühe dokumendi või dokumentide massiivi. See töötab endiselt, kuid on uuemates draiverites aegunud. | db.Employee.insert(minuTöötaja) |
| lisaÜks() | Lisab täpselt ühe dokumendi ja tagastab selle sisestatud _id. Eelistatav üksikute kirjete puhul. | db.Employee.insertOne({ … }) |
| sisestaPalju() | Lisab ühe päringuga dokumentide massiivi ja tagastab kõik sisestatud _id-d. Eelistatav hulgi lisamise korral. | db.Employee.insertMany([ { … }, { … } ]) |
Uute projektide puhul kasutage insertOne() ja insertMany() funktsioone, kuna need annavad selgema kavatsuse ja parema veateate. Insert() meetod jääb kättesaadavaks peamiselt tagasiühilduvuse tagamiseks vanemate õpetuste ja skriptidega.
JSON-vormingus printimine
JSON on formaat nimega JavaSkripti objekti märkimine, ja see on lihtsalt viis teabe organiseeritud ja hõlpsasti loetaval viisil salvestamiseks. Järgmistes näidetes kasutame JSON-i printimisfunktsiooni, et näha väljundit paremas vormingus.
Vaatame JSON-vormingus printimise näidet
db.Employee.find().forEach(printjson)
Code Selgitus:
- Esimene muudatus on funktsiooni forEach() lisamine funktsioonile find(). See tagab, et iga dokument kogumis läbi käiakse. Sel viisil on teil suurem kontroll selle üle, mida saate iga dokumendiga kogus teha.
- Teine muudatus on käsu printjson panemine lausesse forEach. Selle tulemusel kuvatakse kõik kogus olevad dokumendid JSON-vormingus.
Kui käsk on edukalt täidetud, kuvatakse järgmine väljund
Väljund:
Väljund näitab selgelt, et kõik dokumendid prinditakse JSON-stiilis.



