MongoDB $push: Добавление элементов в массив

Оператор $push добавляет элементы в существующий массив. Если массив не существует, он создаётся автоматически.

Синтаксис

Синтаксис $push: $push: { <поле_массива>: <значения> }. Ключ — имя поля массива, значение — добавляемые элементы.

Примеры

Добавление одного элемента:

Этот пример добавляет строковый элемент "item 1" в массив cart документа с _id: 561. Можно использовать значения других типов.

db.collection.updateOne(
  { _id: 561 },
  { $push: { cart: "item 1" } }
)

Добавление нескольких элементов с $each:

Добавление элементов "item 2" и "item 3" в массив cart с помощью модификатора $each.

db.collection.updateOne(
  { _id: 561 },
  { $push: { cart: { $each: ["item 2", "item 3"] } } }
)

Пример модификации документа:

Сначала удалим существующий массив cart:

db.collection.updateOne(
  { index: 1 },
  { $unset: { cart: "" } }
)

Затем добавим "item 1":

db.collection.updateOne(
  { _id: 561 },
  { $push: { cart: "item 1" } }
)

Добавим "item 2":

db.collection.updateOne(
  { _id: 561 },
  { $push: { cart: "item 2" } }
)

И несколько элементов с помощью $each:

db.collection.updateOne(
  { _id: 561 },
  { $push: { cart: { $each: ["item 3", "item 4", "item 5"] } } }
)

Дубликаты

Добавление уже существующего элемента приводит к его повторному добавлению. Например, повторное добавление "item 2" создаст два элемента "item 2" в массиве cart.

db.collection.updateOne(
  { _id: 561 },
  { $push: { cart: "item 2" } }
)

Для предотвращения дублирования используйте оператор $addToSet.

$push — эффективный инструмент для работы с массивами в MongoDB. Он добавляет элементы, создавая массивы при необходимости, и поддерживает модификаторы. Для предотвращения дубликатов используйте $addToSet.

Что будем искать? Например,программа