SCQuery
SCQuery
SCQuery
- .Query
- .init(collection)
- .find(callback -> Void)
- .count(callback -> Void)
- .update(update, callback -> Void)
- .remove(callback)
- .limit(limit)
- .skip(skip)
- .page(page)
- .raw(json)
- .reset()
- .ascending(name)
- .descending(name)
- .fields(names)
- .addOperator(name, oper)
- .equalTo(name, _ value)
- .notEqualTo(name, _ value)
- .containedIn(name, _ value)
- .containsAll(name, _ value)
- .notContainedIn(name, _ value)
- .greaterThan(name, _ value)
- .greaterThanOrEqualTo(name, _ value)
- .lessThan(name, _ value)
- .lessThanOrEqualTo(name, _ value)
- .exists(name)
- .doesNotExist(name)
- .contains(name, _ pattern)
- .startsWith(name, _ pattern)
- .endsWith(name, _ pattern)
- .and(operators)
- .or(operators)
init(collection)
Инициализация запроса к данным коллекции.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
collection | String |
Обязательное | Имя коллекции в которую добавляется объект | "items" |
Пример
var query = SCQuery(collection: "users")
.find(callback)
Метод для поиска объектов, на основе сформированного условия выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
callback | (Bool, SCError?, [String: AnyObject]?) -> Void |
Коллбэк для выполняемого запроса. |
Пример
var query = SCQuery(collection: "users")
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.count(callback)
Метод для подсчета количества объектов, которые удовлетворяют условиям запроса.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
callback | (Bool, SCError?, Int?) -> Void |
Коллбэк для выполняемого запроса. |
Пример
var query = SCQuery(collection: "users")
query.count() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.update(update, callback)
Метод для обновления объектов, соответствующих условиям выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
update | SCUpdate |
Обязательное | Объект SCUpdate в который переданы данные для обновления | |
callback() | (Bool, SCError?, [String: AnyObject]?) -> Void |
Коллбэк для выполняемого запроса. |
Пример
var userArrivalTime = SCUpdate()
let currentDate = SCUpdateOperator.currentDate("fieldName", typeSpec: "timestamp")
logArrivalTime.addOperator(currentDate)
var arrivedUsers = SCQuery(collection: "users")
arrivedUsers.equalTo("flightRace", SCString("AF4926"))
arrivedUsers.update(userArrivalTime) {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.remove(callback)
Метод для удаления объектов, соответствующих условиям выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
callback() | (Bool, SCError?, [String: AnyObject]?) -> Void |
Коллбэк для выполняемого запроса. |
Пример
var oldStuff = SCQuery(collection: "Stuff")
oldStuff.lessThan("createdAt", SCDate("2016-06-54T17:24:23.091+03:00"))
oldStuff.remove() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.limit(limit)
Метод для установки лимита выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
limit | Int |
Обязательное | Лимит выборки | 100 |
Пример
var query = SCQuery(collection: "items")
query.limit(25)
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.skip(skip)
Метод для установки количества пропускаемых перед совершением выборки документов
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
limit | Int |
Обязательное | Количество пропускаемых документов | 1000 |
Пример
var query = SCQuery(collection: "items")
query.skip(1000)
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.page(page)
Метод для "постраничного" вывода результатов выборки, в соответствии с указанным лимитом выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
page | Int |
Обязательное | Номер страницы | 4 |
Пример
var query = SCQuery(collection: "items")
query.limit(25)
query.page(4)
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.raw(json)
Метод для установки условий выборки в виде JSON-структуры для формирования запроса к БД на языке MongoDB.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
json | String |
Обязательное | Условия выборки | {location: {$in: ['New California Republic', 'Vault City']}} |
Пример
var query = SCQuery(collection: "items")
query.raw("{ \"fieldString\" : \"Строка\" }")
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.reset()
Метод для очистки условий выборки
Пример
var query = SCQuery(collection: "items")
query.equalTo("fieldName", SCString("John Doe"))
query.raw("{ \"fieldString\" : \"Строка\" }")
query.ascending("field1")
query.descending("field2")
query.fields(["field1", "field2"])
let and1 = SCOperator.EqualTo("fieldString", SCString("Строка"))
let and2 = SCOperator.EqualTo("fieldNumber", SCInt(33))
query.and([and1, and2])
query.reset()
.ascending(name)
Метод для сортировки данных в порядке возрастания значений указанного поля перед совершением выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательное | Имя поля | "price" |
Пример
var sortByPrice = SCQuery(collection: "items")
sortByPrice.ascending("price")
sortByPrice.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.descending(name)
Метод для сортировки данных в порядке убывания значений указанного поля перед совершением выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательное | Имя поля | "reward" |
Пример
var sortByReward = SCQuery(collection: "items")
sortByReward.descending("reward")
sortByReward.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.fields(names)
Метод для указания списка возвращаемых полей.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
names | [String] |
Обязательное | Массив имен запрашиваемых полей | ["price", "reward"] |
Пример
var getPriceAndReward = SCQuery(collection: "items")
getPriceAndReward.fields(["price", "reward"])
getPriceAndReward.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.addOperator(name, oper)
Метод для передачи SCQuery условия выборки
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательное | Имя поля, на которое накладывается условие | "testcoll" |
oper | SCOperator |
Обязательное | Условие, которое накладывается |
Пример
let lessNorEqual = SCOperator.LessThanOrEqualTo("price", 42)
SCQuery.addOperator(name, oper: lessNorEqual)
.equalTo(name, _ value)
Метод для получения всех документов c указанным в условии значением поля.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, на которое накладывается условие | "tags" |
_ value | SCValue |
Обязательный | Значение поля | 42 |
Пример
var query = SCQuery(collection: "items")
query.equalTo("equality", SCString("yep"))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.notEqualTo(name, _ value)
Метод для получения всех документов, за исключением объектов с указанным в условии значением поля.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, на которое накладывается условие | "tags" |
_ value | SCValue |
Обязательный | Значение поля | 43 |
Пример
var query = SCQuery(collection: "items")
query.notEqualTo("unequality", SCString("nope"))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.containedIn(name, _ value)
Метод для получения всех объектов, значение поля которых содержит указанные в запросе элементы массива.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, на которое накладывается условие | "price" |
_ value | SCArray |
Обязательный | Массив значений | [-42, 41.999, 42] |
Пример
var query = SCQuery(collection: "items")
query.containedIn("someField", SCArray([SCString("A"), SCString("B")]))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.containsAll(name, _ value)
Метод для получения всех объектов, значение поля которых содержит все указанные в запросе элементы массива.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, на которое накладывается условие | "strangeNumbers" |
_ value | SCArray |
Обязательный | Массив значений | [4, 8, 15, 16, 23, 42] |
Пример
var query = SCQuery(collection: "items")
query.containsAll("someField", SCArray([SCString("A"), SCString("B")]))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.notContainedIn(name, _ value)
Метод для получения всех объектов, значение поля которых не содержит указанные в запросе элементы массива.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, на которое накладывается условие | "tags" |
_ value | SCArray |
Обязательный | Массив значений | 42 |
Пример
var query = SCQuery(collection: "items")
query.notContainedIn("someField", SCArray([SCString("A"), SCString("B")]))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.greaterThan(name, _ value)
Метод для получения всех объектов, значение поля которых больше, чем указанное в запросе число.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, на которое накладывается условие | "reward" |
_ value | SCValue |
Обязательный | Значение условия | 42 |
Пример
var query = SCQuery(collection: "items")
query.greaterThan("reward", SCInt(100))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.greaterThanOrEqualTo(name, _ value)
Метод для получения всех объектов, значение поля которых не меньше, чем указанное в запросе число.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, на которое накладывается условие | "reward" |
_ value | SCValue |
Обязательный | Значение условия | 42 |
Пример
var query = SCQuery(collection: "items")
query.greaterThanOrEqualTo("createdAt", SCDate("2016-06-04T17:24:23.091+03:00"))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.lessThan(name, _ value)
Метод для получения всех объектов, значение поля которых меньше, чем указанное в запросе число.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, значение которого нужно изменить | "price" |
_ value | SCValue |
Обязательный | Значение условия | 42 |
Пример
var query = SCQuery(collection: "items")
query.lessThan("price", SCInt(42))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.lessThanOrEqualTo(name, _ value)
Метод для получения всех объектов, значение поля которых не больше, чем указанное в запросе число.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, значение которого нужно изменить | "price" |
_ value | SCValue |
Обязательный | Значение условия | 42 |
Пример
var query = SCQuery(collection: "items")
query.lessThanOrEqualTo("price", SCInt(42))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.exists(name)
Метод для получения всех объектов с существующим значением заданного поля
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательное | Имя поля, которому задается условие | "price" |
Пример
var query = SCQuery(collection: "items")
query.exists("reward")
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.doesNotExist(name)
Метод для получения всех объектов с отсутствующим значением в заданном поле
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательное | Имя поля, которому задается условие | "price" |
Пример
var query = SCQuery(collection: "items")
query.doesNotExist("price")
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.contains(name, _ pattern)
Метод для получения всех объектов со значением заданного поля, соответствующим заданному регулярному выражению.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, которому задается условие | "stringsWithNumbers" |
_ pattern | String |
Обязательный | Регулярное выражение | [0-9] |
Пример
var query = SCQuery(collection: "items")
query.contains("description", "[a-zA-Z0-9]")
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.startsWith(name, _ pattern)
Метод для получения всех объектов со значением заданного поля, начинающимся с указанной строки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, которому задается условие | "labels" |
_ pattern | String |
Обязательный | Значение условия | "neverendi" |
Пример
var query = SCQuery(collection: "items")
query.startsWith("fieldString", "[A-Z]")
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.endsWith(name, _ pattern)
Метод для получения всех объектов со значением заданного поля, заканчивающимся на указанную строку.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
name | String |
Обязательный | Имя поля, значение которого нужно изменить | "labels" |
_ pattern | String |
Обязательный | Удаляемое значение | "ngdocuments" |
Пример
var query = SCQuery(collection: "items")
query.endsWith("fieldString", "ing")
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.and(operators)
Метод для логического умножения условий нескольких выборок
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
operators | [SCOperator] |
Обязательное | Условие выборки, которое включается в конъюнкцию |
Пример
var query = SCQuery(collection: "items")
query.notEqualTo("unequality", SCString("nope"))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}
.or(operators)
Метод для логического сложения условий нескольких выборок
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
operators | [SCOperator] |
Обязательное | Условие выборки, которое включается в дизъюнкцию |
Пример
var query = SCQuery(collection: "items")
query.notEqualTo("unequality", SCString("nope"))
query.find() {
success, error, result in
if success {
print("Success")
} else {
if let error = error {
print("Error")
}
}
}