Оператор обновления полей MongoDB - $ inc
Описание
В MongoDB оператор $ inc используется для увеличения значения поля на указанную величину. Оператор $ inc добавляет как новое поле, когда указанное поле не существует, и устанавливает для поля указанное количество. $ Inc принимает положительное и отрицательное значение в качестве добавочной суммы.
Синтаксис:
{$ inc: {<field1>: <amount1>, ...}}
Параметры:
название | Описание |
---|---|
field1 | название столбца или поля |
количество1 | инкрементное значение |
Наша база данных называется «myinfo», а наша коллекция - «items». Вот коллекция ниже.
Образец коллекции "Предметы"
{
"_id" : 1,
"item_id" : "I001",
"comp_id" : "C001",
"qty" : 25,
"prate" : 30,
"srate" : 35,
"mrp" : 40
}
{
"_id" : 2,
"item_id" : "I001",
"comp_id" : "C002",
"qty" : 30,
"prate" : 32,
"srate" : 37,
"mrp" : 40
}
Пример оператора обновления поля - $ inc
Если мы хотим увеличить значение qty на 10 для первого соответствующего документа в элементах коллекции для item_id - I001, можно использовать следующий оператор mongodb:
> db.items.update( { item_id: "I001" },{ $inc: { qty: 10 }});
Вот в приведенном выше примере
- Кол-во для первого соответствующего документа для условия item_id: I001 было обновлено, и кол-во стало 35 из 25, а остальное остается тем же.
Чтобы увидеть обновленный вывод -
> db.items.find().pretty();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
Вывод команды
{ "_id": 1, "item_id": "I001", "comp_id": "C001", кол-во: 35, "prate": 30, "Срейт": 35, "MRP": 40 } { "_id": 2, "item_id": "I001", "comp_id": "C002", кол-во: 30, "prate": 32, "Срейт": 37, "MRP": 40 }
Пример оператора $ inc с multi: true
Если мы хотим добавить новое поле, например, % налога с определенным значением 2, для всех документов в элементах коллекции для item_id - I001, можно использовать следующие запросы mongodb:
> db.items.update( { "item_id": "I001" }, { $inc: { "tax%": 2 } }, { multi: true } );
Вот в приведенном выше примере
- Новый налог в поле %, который не существует, был добавлен со значением 2 для всех документов, которые соответствуют условию item_id: I001. Здесь «multi: true» используется для обновления всех документов, соответствующих указанному условию.
Чтобы увидеть обновленный вывод -
> db.items.find().pretty();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
Вывод команды:
{ "_id": 1, "comp_id": "C001", "item_id": "I001", "mrp": 40, "prate": 30, кол-во: 35, "Срейт": 35, "% налога": 2 } { "_id": 2, "comp_id": "C002", "item_id": "I001", "mrp": 40, "prate": 32, кол-во: 30, "Срейт": 37, "% налога": 2 }
Пример оператора $ inc для нескольких полей
Если мы хотим увеличить налог и% mrp для всех соответствующих документов по условию, можно использовать следующую команду mongodb:
> db.items.update ({"item_id": "I001"}, {$ inc: {"tax%": 2, "mrp": - 2}}, {multi: true});
Вот в приведенном выше примере
- выражение оператора $ inc указывает 2 для% налога и -2 для поля mrp, чтобы увеличить значение налога% на 2 и одновременно уменьшить mrp на 2. «Multi: true» используется для обновления всех соответствующих документов для указанного условия.
Чтобы увидеть обновленный вывод -
> db.items.find (). pretty ();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
Вывод команды:
{ "_id": 1, "comp_id": "C001", "item_id": "I001", "mrp": 38, "prate": 30, кол-во: 35, "Срейт": 35, "% налога": 4 } { "_id": 2, "comp_id": "C002", "item_id": "I001", "mrp": 38, "prate": 32, кол-во: 30, "Срейт": 37, "% налога": 4 }
Предыдущая: $ slice
Далее: $ переименовать
Новый контент: Composer: менеджер зависимостей для PHP , R программирования