MongoDB Tablica obiektów przy użyciu funkcji wstawki () z przykładem
⚡ Inteligentne podsumowanie
MongoDB Tablica obiektów z użyciem funkcji insert() pokazuje, jak dodać kilka dokumentów do kolekcji w jednej operacji. Przechowuje tablicę rekordów pracowników, osadza tablice w dokumencie i wyświetla wyniki w przejrzysty sposób za pomocą funkcji drukowania JSON.

Czym jest metoda insert() w MongoDB?
Metoda insert() w MongoDB Dodaje jeden lub więcej dokumentów do kolekcji. Dokument to zestaw par pole-wartość przechowywanych w BSON, binarnej formie JSON. Po przekazaniu pojedynczego dokumentu funkcja insert() zapisuje ten jeden rekord; po przekazaniu tablicy dokumentów zapisuje je wszystkie w jednej operacji, co jest szybsze niż wstawianie ich pojedynczo.
Metoda jest uruchamiana dla konkretnej kolekcji przy użyciu wzorca db.collection.insert(). Jeśli kolekcja docelowa jeszcze nie istnieje, MongoDB Tworzy je automatycznie podczas pierwszego wstawiania. Każdy dokument otrzymuje również unikalne pole _id, jeśli go nie podasz, dzięki czemu każdy rekord można później zidentyfikować.
Chociaż insert() nadal działa, nowsze MongoDB Wersje oferują bardziej przejrzyste zamienniki insertOne() i insertMany(). Poniższe przykłady wykorzystują insert(), aby dodać tablicę dokumentów pracowniczych, a następnie wyświetlić wyniki w czytelnym formacie JSON.
Dodawanie tablicy dokumentów
Polecenie „wstaw” może być również użyte do jednoczesnego wstawienia wielu dokumentów do kolekcji. Poniższy przykład kodu może zostać użyty do wstawienia wielu dokumentów jednocześnie.
Poniższy przykład pokazuje, jak to zrobić:
Krok 1) Stwórz JAVASCRIPT zmienna o nazwie myEmployee przechowująca tablicę dokumentów
Krok 2) Dodaj wymagane dokumenty z Nazwą pola i wartościami do zmiennej
Krok 3) Użyj polecenia wstaw, aby wstawić tablicę dokumentów do kolekcji
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Jeśli polecenie zostanie wykonane pomyślnie, zostanie wyświetlony następujący komunikat wyjściowy
Wynik pokazuje, że te 3 dokumenty zostały dodane do kolekcji.
Jak wstawić tablicę do dokumentu
Oprócz wstawiania szeregu oddzielnych dokumentów, MongoDB Pozwala przechowywać tablicę jako pole w jednym dokumencie. Jest to przydatne, gdy jeden rekord naturalnie zawiera listę wartości, na przykład pracownika o kilku umiejętnościach lub studenta zapisanego na wiele kursów. Ponieważ MongoDB korzysta z elastycznego modelu dokumentu, tablica znajduje się bezpośrednio wewnątrz obiektu, a nie w osobnej tabeli, co pozwala na przechowywanie powiązanych danych w jednym miejscu.
Poniższy przykład wstawia jeden dokument pracownika zawierający pole tablicowe o nazwie Umiejętności:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Części tego dokumentu działają w następujący sposób:
- Identyfikator pracownika oraz Imię i nazwisko pracownika są zwykłymi parami pole-wartość.
- umiejętności jest polem tablicowym zawierającym trzy wartości łańcuchowe w nawiasach kwadratowych.
- Cały dokument, łącznie z osadzoną tablicą, jest zapisywany w jednej operacji wstawiania.
Po dodaniu rekordu możesz potwierdzić osadzoną tablicę za pomocą zapytania find, które drukuje wynik w formacie JSON:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Na wyjściu widoczna jest tablica Umiejętności zagnieżdżona w dokumencie pracownika. LaterMożesz dodawać nowe wartości do tablicy za pomocą operatora $push lub odczytywać pojedynczy element według jego pozycji indeksu. Przechowywanie powiązanych wartości w ten sposób sprawia, że każdy dokument jest niezależny, zmniejsza potrzebę łączenia kolekcji oraz ułatwia odczyt i zarządzanie danymi.
insert() vs insertOne() vs insertMany()
MongoDB Oferuje trzy powiązane metody dodawania danych. Poniższa tabela porównuje je, aby ułatwić wybór odpowiedniej metody:
| Metoda wykonania | Cel | Przykład |
|---|---|---|
| wstawić() | Starsza metoda, która dodaje pojedynczy dokument lub tablicę dokumentów. Nadal działa, ale jest przestarzała w nowszych sterownikach. | db.Employee.insert(myEmployee) |
| insertOne() | Dodaje dokładnie jeden dokument i zwraca jego wstawiony _id. Preferowane dla pojedynczych rekordów. | db.Employee.insertOne({ … }) |
| insertMany() | Dodaje tablicę dokumentów w jednym wywołaniu i zwraca wszystkie wstawione _id. Preferowane w przypadku wstawek zbiorczych. | db.Employee.insertMany([ { … }, { … } ]) |
W nowych projektach używaj insertOne() i insertMany(), ponieważ zapewniają one jaśniejszą intencję i lepsze raportowanie błędów. Metoda insert() pozostaje dostępna głównie ze względu na wsteczną kompatybilność ze starszymi samouczkami i skryptami.
Druk w formacie JSON
JSON to format tzw JavaNotacja obiektu skryptui jest po prostu sposobem przechowywania informacji w zorganizowany i łatwy do odczytania sposób. W naszych dalszych przykładach użyjemy funkcji drukowania JSON, aby zobaczyć dane wyjściowe w lepszym formacie.
Spójrzmy na przykład wydruku w formacie JSON
db.Employee.find().forEach(printjson)
Code Wyjaśnienie:
- Pierwsza zmiana polega na dodaniu funkcji o nazwie forEach() do funkcji find(). Dzięki temu funkcja ta jawnie przeszuka każdy dokument w kolekcji. W ten sposób masz większą kontrolę nad tym, co możesz zrobić z każdym dokumentem w kolekcji.
- Druga zmiana polega na umieszczeniu polecenia printjson w instrukcji forEach. Spowoduje to, że każdy dokument w kolekcji będzie wyświetlany w formacie JSON.
Jeśli polecenie zostanie wykonane pomyślnie, zostanie wyświetlony następujący komunikat wyjściowy
Wyjście:
Dane wyjściowe wyraźnie pokazują, że wszystkie dokumenty są drukowane w stylu JSON.


