MongoDB Масив об’єктів за допомогою insert() із прикладом

⚡ Розумний підсумок

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

  • 📥 Масове вставлення: Метод insert() додає масив документів до колекції за одну ефективну операцію.
  • 🧾 Модель документа: Кожен документ являє собою набір пар полів і значень, і MongoDB автоматично додає унікальний _id.
  • 🗂️ Вбудовані масиви: Масив також може існувати як поле в одному документі, keeping пов'язані цінності разом.
  • 🔁 Сучасні методи: insertOne() та insertMany() – це поточні, зрозуміліші заміни застарілого методу insert().
  • 🖨️ Readable вихід: Команда forEach(printjson) друкує кожен документ у чистому, легкому для читання форматі JSON.

Що таке метод 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);

Якщо команда виконана успішно, буде показано наступний результат

MongoDB Масив об’єктів за допомогою insert()

Результат показує, що ці 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 Пояснення:

  1. Перша зміна полягає у додаванні функції forEach() до функції find(). Це забезпечує явний перебір кожного документа в колекції. Таким чином, ви маєте більше контролю над тим, що можна робити з кожним документом у колекції.
  2. Друга зміна полягає в тому, щоб додати команду printjson до оператора forEach. Це спричинить відображення кожного документа в колекції у форматі JSON.

Якщо команда виконана успішно, буде показано наступний результат

вихід:

Друк у форматі JSON

Результат чітко показує, що всі документи надруковано у стилі JSON.

Поширені запитання

Так. Передача масиву документів до insert() додає їх усі за одну операцію. Така масова вставка швидша, ніж виклик insert() окремо для кожного документа, хоча insertMany() зараз є кращим методом.

Так. Якщо документ не містить поля _id, MongoDB автоматично генерує унікальний ObjectId для нього під час вставки, тому кожен збережений запис можна ідентифікувати та отримати пізніше.

За замовчуванням MongoDB виконує впорядковану вставку. Вона додає документи у заданому порядку та зупиняється на першій помилці, залишаючи решту документів невставленими. Встановлення ordered на false продовжує роботу після помилок.

Так. Інструменти штучного інтелекту можуть перетворити опис ваших даних простою мовою на оператори insertOne() або insertMany(), включаючи вбудовані масиви. Завжди перевіряйте згенеровані поля та типи даних, перш ніж запускати їх у базі даних.

Штучний інтелект може запропонувати, чи вбудовувати масиви в документ, чи посилатися на окремі колекції, на основі ваших шаблонів запитів. Це допомагає початківцям ефективно моделювати дані, уникаючи непотрібного дублювання або надмірно глибокого вкладення.

Підсумуйте цей пост за допомогою: