MongoDB Pole objektů pomocí insert() s příkladem
⚡ Chytré shrnutí
MongoDB Pole objektů s využitím funkce insert() ukazuje, jak přidat několik dokumentů do kolekce jednou operací. Ukládá pole záznamů o zaměstnancích, vkládá pole do dokumentu a přehledně zobrazuje výsledky pomocí funkce JSON print.

Co je metoda insert() v MongoDB?
Metoda insert() v MongoDB přidá jeden nebo více dokumentů do kolekce. Dokument je sada párů polí a hodnot uložených v BSON, binární formě JSON. Když předáte jeden dokument, insert() uloží tento jeden záznam; když předáte pole dokumentů, uloží je všechny v jedné operaci, což je rychlejší než jejich vkládání jeden po druhém.
Metoda se spouští pro konkrétní kolekci pomocí vzoru db.collection.insert(). Pokud cílová kolekce ještě neexistuje, MongoDB vytvoří jej automaticky při prvním vložení. Každý dokument také obdrží jedinečné pole _id, pokud ho neposkytnete, takže každý záznam lze později identifikovat.
I když insert() stále funguje, novější MongoDB Verze poskytují insertOne() a insertMany() jako přehlednější náhrady. Níže uvedené příklady používají insert() k přidání pole dokumentů zaměstnanců a následnému zobrazení výsledků v čitelném formátu JSON.
Přidání pole dokumentů
Příkaz „insert“ lze také použít k vložení více dokumentů do kolekce najednou. Níže uvedený příklad kódu lze použít k vložení více dokumentů najednou.
Následující příklad ukazuje, jak to lze provést,
Krok 1) Vytvořit JavaScénář proměnnou nazvanou myEmployee pro uložení pole dokumentů
Krok 2) Přidejte požadované dokumenty s názvem pole a hodnotami do proměnné
Krok 3) Pomocí příkazu insert vložte pole dokumentů do kolekce
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Pokud je příkaz úspěšně proveden, zobrazí se následující výstup
Výstup ukazuje, že tyto 3 dokumenty byly přidány do sbírky.
Jak vložit pole do dokumentu
Kromě vkládání pole samostatných dokumentů, MongoDB umožňuje uložit pole jako pole v jednom dokumentu. To je užitečné, když jeden záznam přirozeně obsahuje seznam hodnot, například zaměstnanec s několika dovednostmi nebo student zapsaný do více kurzů. Protože MongoDB používá flexibilní model dokumentu, pole se nachází přímo uvnitř objektu, nikoli v samostatné tabulce, která uchovává související data pohromadě.
Následující příklad vloží jeden dokument zaměstnance, který obsahuje pole s názvem Dovednosti:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Části tohoto dokumentu fungují následovně:
- ID zaměstnance a Jméno zaměstnance jsou běžné páry pole a hodnoty.
- schopnosti je pole pole, které obsahuje tři řetězcové hodnoty uvnitř hranatých závorek.
- Celý dokument, včetně vloženého pole, je uložen v jediné operaci vložení.
Po přidání záznamu můžete vložené pole ověřit pomocí vyhledávacího dotazu, který výsledek vypíše ve formátu JSON:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Výstup zobrazuje pole Skills vnořené v dokumentu zaměstnance. Later, můžete do pole přidávat nové hodnoty pomocí operátoru $push nebo číst jeden prvek podle jeho indexové pozice. Ukládání propojených hodnot tímto způsobem udržuje každý dokument samostatný, snižuje potřebu spojení napříč kolekcemi a usnadňuje čtení a údržbu dat.
insert() vs. insertOne() vs. insertMany()
MongoDB nabízí tři související metody pro přidávání dat. Níže uvedená tabulka je porovnává, abyste si mohli vybrat tu správnou:
| Metoda | Účel | Příklad |
|---|---|---|
| vložit() | Starší metoda, která přidává jeden dokument nebo pole dokumentů. Stále funguje, ale v novějších ovladačích je zastaralá. | db.Zaměstnanec.insert(můjZaměstnanec) |
| vložitJeden() | Přidá přesně jeden dokument a vrátí jeho vložené _id. Preferováno pro jednotlivé záznamy. | db.Employee.insertOne({ … }) |
| insertMany() | Přidá pole dokumentů v jednom volání a vrátí všechny vložené _ids. Vhodné pro hromadné vkládání. | db.Employee.insertMany([ { … }, { … } ]) |
Pro nové projekty používejte metody insertOne() a insertMany(), protože poskytují jasnější záměr a lepší hlášení chyb. Metoda insert() zůstává k dispozici hlavně kvůli zpětné kompatibilitě se staršími tutoriály a skripty.
Tisk ve formátu JSON
JSON je formát nazvaný JavaZápis objektu skriptua je to jen způsob, jak ukládat informace organizovaným a snadno čitelným způsobem. V našich dalších příkladech použijeme tiskovou funkci JSON, abychom viděli výstup v lepším formátu.
Podívejme se na příklad tisku ve formátu JSON
db.Employee.find().forEach(printjson)
Code Vysvětlení:
- První změnou je připojení funkce s názvem forEach() k funkci find(). To zajistí, že se explicitně projde každý dokument v kolekci. Tímto způsobem máte větší kontrolu nad tím, co můžete s každým dokumentem v kolekci dělat.
- Druhou změnou je vložení příkazu printjson do příkazu forEach. To způsobí, že se každý dokument v kolekci zobrazí ve formátu JSON.
Pokud je příkaz úspěšně proveden, zobrazí se následující výstup
Výstup:
Výstup jasně ukazuje, že všechny dokumenty jsou vytištěny ve stylu JSON.


