Scorocode.UpdateOps
Содержание
new UpdateOps()
Класс для осуществления операций множественного обновления объектов
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты, значение поля price которых не равно 42.
Items.notEqualTo("price", 42)
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Установим новое значение поля "price"
updateItems.set("price", 42);
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Возвращает: UpdateOps
- Возвращает экземпляр sc.UpdateOps
.set(data)
Метод для передачи данных объекту
Параметр | Тип | Описание |
---|---|---|
data | Object |
Данные в формате {"key", "value"}, где key - имя поля коллекции. |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты, значение поля price которых не равно 42.
Items.notEqualTo("price", 42)
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Установим новое значение поля "price"
updateItems.set("price", 42);
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
см.
.push(key, value)
Метод для добавления элемента в массив.
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
value | String |
Изменение, которое нужно внести |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты с существующим значением поля "arrayField".
Items.exists("arrayField")
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Добавим новый элемент в массивы, хранящиеся в "arrayField" объектов выборки
updateItems.push("arrayField", "Новый элемент массива");
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
.pull(key, value)
Метод для удаления всех элементов массива, значение которых равно указанному.
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
value | String / Number / Boolean / Date / Array / Object |
Удаляемое значение |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты с существующим значением поля "arrayField".
Items.exists("arrayField")
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Из значений массивов "arrayField" удалим все элементы со значением, равным {"Удалить этот объект": true}.
updateItems.pull("arrayField", {"Удалить этот объект": true});
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Исключения:
Error
"For a new document use the method Set"Error
'Field must by a type of array'
.pullAll(key, value)
Метод для удаления всех элементов массива, значения которых равны одному из указанных значений.
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
value | Array |
Массив удаляемых значений |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты с существующим значением поля "arrayField".
Items.exists("arrayField")
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Из значений массивов "arrayField" удалим все элементы со значениями, равными "Удалить", 42 или {"Не удалять": false}.
updateItems.pullAll("arrayField", ["Удалить", 42, {"Не удалять": false}]);
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Исключения:
Error
'For a new document use the method Set'Error
'Field must by a type of array'Error
'Value must by a type of array'
.addToSet(key, value)
Метод для добавления элемента в массив только в том случае, если в массиве отсутствуют элементы с таким значением.
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
value | Array |
Значение добавляемого элемента |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты с существующим значением поля "arrayField".
Items.exists("arrayField")
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Добавим в массивы, хранящиеся в поле "arrayField", новый элемент ["Первый элемент нового элемента", {"Второй?": true}], если такого элемента ещё нет в значении "arrayField" объектов.
updateItems.addToSet("arrayField", ["Первый элемент нового элемента", {"Второй?": true}]);
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Исключения:
Error
'For a new document use the method Set'Error
'Field must by a type of array'
.pop(key, pos)
Метод для удаления первого или последнего элемента массива
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
pos | Number |
Позиция удаляемого элемента в массиве: -1 для первого элемента и 1 для последнего |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты с существующим значением поля "arrayField".
Items.exists("arrayField")
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Удалим последний элемент из значений массивов полей "arrayField".
updateItems.pop("arrayField", 1);
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Исключения:
Error
'For a new document use the method Set'Error
'Field must by a type of array'
.inc(key, amount)
Метод увеличивает значение числового поля на заданное число
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
amount | Number |
Шаг изменения |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты с существующим значением поля "price".
Items.exists("price")
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Уменьшим значения полей "price" на 2.42
updateItems.inc("price", -2.42);
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Исключения:
Error
'For a new document use the method Set'Error
'Field must by a type of number'
.currentDate()
Устанавливает текущее время в качестве значения поля
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
type | String / Boolean |
Тип даты. Принимает значения: true, 'date' или 'timestamp' |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Запросим все объекты коллекции "items"
Items.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Запишем текущую дату в поле "someDate" всех объектов
updateItems.currentDate("someDate", "timestamp");
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Исключения:
Error
'For a new document use the method Set'Error
'Invalid type'
.mul(key, number)
Метод умножает значение числового поля на заданное число
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
number | Number |
Мультипликатор |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты с существующим значением поля "price".
Items.exists("price")
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Умножим значения полей "price" на 0.5
updateItems.mul("price", 0.5);
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Исключения:
Error
'For a new document use the method Set'Error
'Field must by a type of number'Error
'Value must by a type of number'
.min()
Метод обновляет значение числового поля только в случае, если новое значение меньше текущего значения поля
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
number | Number |
Новое значение |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты с существующим значением поля "price".
Items.exists("price")
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Изменим значение поля "price" объектов на новое значение 42 в случае, если новое значение поля меньше текущего.
updateItems.min("price", 42);
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Исключения:
Error
'For a new document use the method Set'Error
'Field must by a type of number'Error
'Value must by a type of number'
.max()
Метод обновляет значение числового поля только в случае, если новое значение больше текущего значения поля
Параметр | Тип | Описание |
---|---|---|
key | String |
Имя поля, значение которого нужно изменить |
number | Number |
Новое значение |
Пример
// Подключим SDK и инициализируем его.
var sc = require('scorocode');
sc.Init({
ApplicationID: "applicationId_приложения",
JavaScriptKey: "javascriptKey_приложения"
});
// Создадим новый экземпляр запроса к коллекции items и объект обновления.
var Items = new sc.Query("items");
var updateItems = new sc.UpdateOps("items");
// Установим условие выборки - запросить все объекты с существующим значением поля "price".
Items.exists("price")
// Выполним запрос к данным коллекции
.find()
// Обработчик успешного выполнения запроса
.then((result) => {
// Изменим значение поля "price" объектов на новое значение 42 в случае, если новое значение поля меньше текущего.
updateItems.max("price", 42);
// Обновим запрошенные объекты
return Items.update(updateItems)
})
// Обработчик успешного выполнения запроса
.then((updated) => {
// Выведем результат в консоль.
console.log(updated);
})
// Обработчик ошибки
.catch((error) => {
console.log("Что-то пошло не так: \n", error)
});
Исключения:
Error
'For a new document use the method Set'Error
'Field must by a type of number'Error
'Value must by a type of number'