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) Създаване на JavaСценарий променлива, наречена 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(), включително вградени масиви. Винаги преглеждайте генерираните полета и типове данни, преди да ги стартирате в база данни.

Изкуственият интелект може да предложи дали да вгради масиви в документа или да препрати към отделни колекции, въз основа на вашите модели на заявки. Това помага на начинаещите да моделират данните ефективно, като същевременно избягват ненужно дублиране или прекалено дълбоко влагане.

Обобщете тази публикация с: