MongoDB Масив об’єктів за допомогою insert() із прикладом
⚡ Розумний підсумок
MongoDB Масив об'єктів з використанням insert() показує, як додати кілька документів до колекції за одну операцію. Він зберігає масив записів співробітників, вбудовує масиви в документ та акуратно відображає результати за допомогою функції JSON print.

Що таке метод insert() у MongoDB?
Метод insert() у MongoDB додає один або декілька документів до колекції. Документ — це набір пар «поле-значення», що зберігаються в BSON, двійковій формі JSON. Коли ви передаєте один документ, insert() зберігає цей запис; коли ви передаєте масив документів, він зберігає їх усі за одну операцію, що швидше, ніж вставка їх по одному.
Метод виконується для певної колекції за допомогою шаблону db.collection.insert(). Якщо цільова колекція ще не існує, MongoDB створює його автоматично під час першої вставки. Кожен документ також отримує унікальне поле _id, якщо ви його не надасте, щоб кожен запис можна було ідентифікувати пізніше.
Хоча insert() все ще працює, новіші MongoDB У версіях insertOne() та insertMany() надаються як зрозуміліші заміни. У наведених нижче прикладах insert() використовується для додавання масиву документів співробітників, а потім відображення результатів у зручному для читання форматі JSON.
Додавання масиву документів
Команда «вставити» також може бути використана для вставлення кількох документів у колекцію одночасно. Наведений нижче приклад коду можна використовувати для вставлення кількох документів одночасно.
Наступний приклад показує, як це можна зробити,
Крок 1) Створити JavaScript змінна під назвою myEmployee для зберігання масиву документів
Крок 2) Додайте необхідні документи з назвою поля та значеннями до змінної
Крок 3) Використовуйте команду вставки, щоб вставити масив документів у колекцію
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Якщо команда виконана успішно, буде показано наступний результат
Результат показує, що ці 3 документи додано до колекції.
Як вставити масив у документ
Окрім вставки масиву окремих документів, MongoDB дозволяє зберігати масив як поле в одному документі. Це корисно, коли один запис природно містить список значень, наприклад, співробітник, який має кілька навичок, або студент, зарахований на кілька курсів. Тому що MongoDB використовує гнучку модель документа, масив знаходиться безпосередньо всередині об'єкта, а не в окремій таблиці, що зберігає пов'язані дані разом.
У наступному прикладі вставляється документ одного співробітника, який містить поле масиву під назвою «Навички»:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Частини цього документа працюють наступним чином:
- Ідентифікатор співробітника та Ім'я співробітника є звичайними парами поле-значення.
- Навички — це поле масиву, яке містить три рядкові значення в квадратних дужках.
- Весь документ, включаючи вбудований масив, зберігається за одну операцію вставки.
Після додавання запису ви можете перевірити вбудований масив за допомогою запиту find, який виводить результат у форматі JSON:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Вивід показує масив Skills, вкладений у документ співробітника. Later, ви можете додавати нові значення до масиву за допомогою оператора $push або зчитувати окремий елемент за його індексною позицією. Зберігання пов'язаних значень таким чином забезпечує автономність кожного документа, зменшує потребу в об'єднаннях між колекціями та спрощує читання та підтримку даних.
insert() проти insertOne() проти insertMany()
MongoDB пропонує три пов’язані методи додавання даних. У таблиці нижче їх порівнюють, щоб ви могли вибрати правильний:
| Метод | Мета | Приклад |
|---|---|---|
| вставити () | Застарілий метод, який додає один документ або масив документів. Він все ще працює, але є застарілим у новіших драйверах. | db.Employee.insert(myEmployee) |
| вставитиОдин() | Додає рівно один документ та повертає його вставлений _id. Бажано для окремих записів. | db.Employee.insertOne({ … }) |
| вставитиБагато() | Додає масив документів за один виклик та повертає всі вставлені _ids. Бажано для масових вставок. | db.Employee.insertMany([ { … }, { … } ]) |
Для нових проектів використовуйте insertOne() та insertMany(), оскільки вони надають чіткішого наміру та краще повідомляють про помилки. Метод insert() залишається доступним головним чином для зворотної сумісності зі старими навчальними посібниками та скриптами.
Друк у форматі JSON
JSON це формат, який називається JavaНотація об’єкта сценарію, і це лише спосіб зберігання інформації в організованому та зручному для читання вигляді. У наших подальших прикладах ми збираємося використовувати функцію друку JSON, щоб побачити вивід у кращому форматі.
Розглянемо приклад друку у форматі JSON
db.Employee.find().forEach(printjson)
Code Пояснення:
- Перша зміна полягає у додаванні функції forEach() до функції find(). Це забезпечує явний перебір кожного документа в колекції. Таким чином, ви маєте більше контролю над тим, що можна робити з кожним документом у колекції.
- Друга зміна полягає в тому, щоб додати команду printjson до оператора forEach. Це спричинить відображення кожного документа в колекції у форматі JSON.
Якщо команда виконана успішно, буде показано наступний результат
вихід:
Результат чітко показує, що всі документи надруковано у стилі JSON.


