MongoDB Массив объектов с использованием метода Insert() с примером
⚡ Умное резюме
MongoDB Использование массива объектов с функцией insert() демонстрирует, как добавить несколько документов в коллекцию за одну операцию. Он хранит массив записей о сотрудниках, встраивает массивы в документ и аккуратно отображает результаты с помощью функции print в формате 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 Используется гибкая модель документа, массив находится непосредственно внутри объекта, а не в отдельной таблице, что позволяет хранить связанные данные вместе.
В следующем примере вставляется документ сотрудника, содержащий поле-массив с именем 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 Объяснение:
- Первое изменение заключается в добавлении функции forEach() к функции find(). Это гарантирует явный перебор каждого документа в коллекции. Таким образом, вы получаете больший контроль над тем, что можно делать с каждым документом в коллекции.
- Второе изменение — добавить команду printjson в оператор forEach. Это приведет к тому, что каждый документ в коллекции будет отображаться в формате JSON.
Если команда выполнена успешно, будет показан следующий вывод
Выход:
Вывод ясно показывает, что все документы напечатаны в стиле JSON.


