SCQuery

SCQuery

SCQuery


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")
        }
    }
}