MongoDB Массив объектов с использованием метода Insert() с примером

⚡ Умное резюме

MongoDB Использование массива объектов с функцией insert() демонстрирует, как добавить несколько документов в коллекцию за одну операцию. Он хранит массив записей о сотрудниках, встраивает массивы в документ и аккуратно отображает результаты с помощью функции print в формате JSON.

  • 📥 Вставка для упаковки: Метод insert() добавляет массив документов в коллекцию за одну эффективную операцию.
  • 🧾 Модель документа: Каждый документ представляет собой набор пар «поле-значение», и MongoDB Автоматически добавляет уникальный _id.
  • 🇧🇷 Встроенные массивы: Массив также может существовать в качестве поля внутри одного документа.ping Взаимосвязанные ценности.
  • 🔁 Современные методы: Методы 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 Массив объектов с использованием вставки()

Вывод показывает, что эти три документа были добавлены в коллекцию.

Как вставить массив в документ

Помимо вставки множества отдельных документов, MongoDB Это позволяет хранить массив в качестве поля внутри одного документа. Это полезно, когда одна запись естественным образом содержит список значений, например, сотрудника, обладающего несколькими навыками, или студента, зачисленного на несколько курсов. Потому что MongoDB Используется гибкая модель документа, массив находится непосредственно внутри объекта, а не в отдельной таблице, что позволяет хранить связанные данные вместе.

В следующем примере вставляется документ сотрудника, содержащий поле-массив с именем Skills:

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({ … })
вставитьМного() Добавляет массив документов за один вызов и возвращает все вставленные _id. Предпочтительный вариант для массовой вставки. 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.

Часто задаваемые вопросы (FAQ)

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

Да. Если в документе отсутствует поле _id, MongoDB При вставке автоматически генерируется уникальный ObjectId, поэтому каждую сохраненную запись можно идентифицировать и извлечь позже.

По умолчанию MongoDB Выполняет упорядоченную вставку. Добавляет документы в заданном порядке и останавливается при первой ошибке, оставляя оставшиеся документы невставленными. Установка параметра ordered в значение false позволяет продолжить вставку после ошибок.

Да. Инструменты искусственного интеллекта могут преобразовывать описание ваших данных на простом языке в операторы insertOne() или insertMany(), включая встроенные массивы. Всегда проверяйте сгенерированные поля и типы данных, прежде чем запускать их в базе данных.

Искусственный интеллект может подсказать, следует ли встраивать массивы в документ или ссылаться на отдельные коллекции, в зависимости от шаблонов запросов. Это помогает начинающим эффективно моделировать данные, избегая ненужного дублирования или чрезмерной вложенности.

Подведем итог этой публикации следующим образом: