кодесурса
«MongoDB

MongoDB Оператор обновления массива - $ push

script1adsense2code
script1adsense3code

Описание

В MongoDB оператор $ push используется для добавления указанного значения в массив. Если упомянутое поле отсутствует в документе для обновления, оператор $ push добавляет его в качестве нового поля и включает упомянутое значение в качестве своего элемента. Если поле обновления не является полем типа массива, операция не удалась.

Во время обновления, если само значение является массивом, оператор $ push добавляет весь массив как один элемент.

Если вы хотите добавить каждый элемент значения отдельно, оператор $ push может использоваться с модификатором $ each.

Синтаксис:

 db.collection.update (<запрос>, {$ push: {<поле>: <значение>}}) 

Параметры:

название Описание
поле имя столбца или поля документа.
значение... Это значения, которые должны быть указаны для полей или столбцов.
запрос Запрос может быть выражением, условием или критерием.

Образец коллекции "Студент"

{
        "_id" : 1,
        "sem" : 1,
        "subjects" : [
                "phys",
                "chem",
                "maths",
                "gkn",
                "stat",
                "astro"
        ],
        "achieve" : [
                70,
                87,
                90,
                90,
                65,
                81
        ]
}

Пример оператора push-сообщения MongoDB $

Если мы хотим добавить 95 к полю массива, достигаемому по отношению к условию субъекта «gkn», можно использовать следующую команду mongodb:

> db.student.update( { "subjects" : "gkn" },{ $push: { "achieve": 95 } });

Здесь в вышеприведенном примере значение 95 будет добавлено в массив достижения , потому что упомянутое условие совпадает для этой операции.

Чтобы увидеть недавно обновленный документ -

> db.student.find().pretty();

Вывод команды:

 {
        "_id": 1,
        "достичь": [
                70,
                87,
                90,
                90,
                65,
                81,
                95
        ],
        "сем": 1,
        "предметы" : [
                "Phys",
                «Хим»,
                "математика",
                "GKN",
                «Стат»,
                «Астро»
        ]
}

Пример оператора push-запроса MongoDB $, когда поле не является массивом

Если мы хотим добавить 2 в поле sem, которое не является полем типа массива, можно использовать следующую команду mongodb:

> db.student.update( { "subjects" : "gkn" },{ $push: { "sem": 2 } });

Здесь в приведенном выше примере поле sem не является полем типа массива, поэтому операция не будет выполнена и выдаст следующий вывод

Выход

 {Невозможно применить модификатор $ push / $ pushAll к не массиву

Пример оператора push-запроса MongoDB $ с использованием модификаторов $ each

Если мы хотим добавить несколько элементов или более одного элемента (77,49,83) в массив достижения для студента документа для субъектов условия «GKN», следующий MongoDB может быть использована команда -

> db.student.update( { "subjects" : "gkn" },{ $push: { "achieve": {$each : [77,49,83 ]} } });

Здесь , в приведенном выше примере $ каждый модификатор использовал для добавления нескольких элементов 77,49,83 в массив , который соответствует достижению субъектов условию равен «GKN».

Чтобы увидеть недавно обновленный документ -

> db.student.find().pretty();

Вывод команды:

 {
        "_id": 1,
        "достичь": [
                70,
                87,
                90,
                90,
                65,
                81,
                77,
                49,
                83
        ],
        "сем": 1,
        "предметы" : [
                "Phys",
                «Хим»,
                "математика",
                "GKN",
                «Стат»,
                «Астро»
        ]
}

Предыдущая: $ pullAll
Next: Операторы агрегации трубопроводов

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code