кодесурса
«MongoDB

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

script1adsense2code
script1adsense3code

Описание

В MongoDB оператор $ setOnInsert используется для установки значений в поля только во время upsert, операция update () выполняет вставку при использовании опции upsert с update ().

В MongoDB оператор $ setOnInsert имеет значение только для операций update () с флагом upsert, так как эта операция выполняет исключительно вставку.

Когда update () имеет флаг upsert и выполняет обновление, это означает, что $ setOnInsert не имеет никакого эффекта.

Синтаксис:

 db.collection.update (<запрос>,
                      {$ setOnInsert: {<field1>: <value1>, ...}},
                      {upsert: true}
                    )

Параметры:

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

Имя нашей базы данных - «myinfo», а имя нашей коллекции - «items1» и предполагается, что коллекция пуста.

Пример оператора MongoDB $ setOnInsert для вставки документа

Следующая операция upsert выполняет вставку и применяет $ setOnInsert, чтобы установить описание поля в item1 и op_stock в 100:

>db.items1.update({ _id: 1 },{ $setOnInsert: {"description":"item1", "op_stock": 100 } },{ upsert: true });

Приведенный выше пример вставит новый документ в коллекцию items1.

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

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

Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().

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

 {"_id": 1, "description": "item1", "op_stock": 100}

Пример оператора MongoDB $ setOnInsert для обновления документа

Следующее обновление () с операцией флага upsert выполняет обновление:

>db.items1.update({ _id: 1 },{ $setOnInsert: {"op_stock": 200,"description":"item2" },$set: {"purqty": 100}},{ upsert:  true });

Здесь в вышеприведенном примере update () с операцией upsert выполняет только обновление, так как поле op_stock и description уже существуют в документе, поэтому MongoDB игнорирует операцию $ setOnInsert и применяет только операцию $ set.

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

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

Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().

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

 {"_id": 1, "description": "item1", "op_stock": 100, "purqty": 100}

Предыдущая: $ set
Далее: $ unset

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code