Класс Query
Query
Класс для вборки документов коллекции.
Содержание
- Query
- new Query(name)
- .findDocuments(callback)
- .countDocuments(callback)
- .updateDocument(update, callback)
- .removeDocument(callback)
- .setLimit(limit)
- .setSkip(skip)
- .setPage(page)
- .equalTo(field, value)
- .notEqualTo(field, value)
- .containedIn(field, values)
- .containsAll(field, values)
- .notContainedIn(field, values)
- .greaterThan(field, value)
- .greaterThenOrEqualTo(field, value)
- .lessThan(field, value)
- .lessThanOrEqualTo(field, value)
- .exists(field)
- .doesNotExist(field)
- .contains(field, regEx, options)
- .startsWith(field, regEx, options)
- .endsWith(field, regEx, options)
- .and(field, query)
- .or(field, query)
- .raw(json)
- .reset()
- .ascending(field)
- .descending(field)
- .setFieldsForSearch(fields)
- .getQueryInfo()
new Query()
Экземпляр запроса к данным коллекции
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
collection_name | String |
Имя коллекции | "things" |
Query query = new Query("name");
.findDocuments(callback)
Метод для поиска документа на основании сформированной выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
callback | CallbackFindDocument |
Обязательный | Callback, который будет вызван после выполнения запроса. |
Примечание
Если вы хотите чтобы вместе с id найденных документов возвращались их поля, задайте название необходимых полей с помощью функции setFieldsForSearch(fields)
Примечание
Данный метод по-умолчанию возвращает не более 50 документов коллекции.
Пример
Query query = new Query(“mycollection”)
.equalTo("number3", 10)
.exists("number2");
query.findDocuments(new CallbackFindDocument() {
@Override
public void onDocumentFound(List<DocumentInfo> documentInfos) {
//found. See document list what match query
}
@Override
public void onDocumentNotFound(String errorCode, String errorMessage) {
//no documents what match query
}
});
.countDocuments(callback)
Метод для подсчета документов из сформированной выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
callback | CallbackCountDocument |
Обязательный | Callback, который будет вызван после выполнения запроса. |
Пример
Query query = new Query(“mycollection”);
query.greaterThan("rating", 10);
query.countDocuments(new CallbackCountDocument() {
@Override
public void onDocumentsCounted(ResponseCount responseCount) {
//see responseCount.getResult() to find how many documents was found.
}
@Override
public void onCountFailed(String errorCode, String errorMessage) {
//error during count
}
});
.updateDocument(update, callback)
Метод для обновления документов из сформированной выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
update | Update |
Обязательный | Объект Update | |
callback | CallbackUpdateDocument |
Обязательный | Callback, который будет вызван после выполнения запроса. |
Примечание
Данный метод обновляет не более 1000 документов
Пример
Query query = new Query(“mycollection”);
query.equalTo("number3", 10);
Update update = new Update()
.set("number2", 199)
.set("numberField", 111)
.addToSet("array1", 900);
query.updateDocument(update, new CallbackUpdateDocument() {
@Override
public void onUpdateSucceed(ResponseUpdate responseUpdate) {
//documents updated successful
}
@Override
public void onUpdateFailed(String errorCode, String errorMessage) {
//error during update
}
});
.removeDocument(callback)
Метод для удаления документов на основании сформированной выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
callback | CallbackRemoveDocument |
Обязательный | Callback, который будет вызван после выполнения запроса. |
Примечание
Данный метод удаляет не более 1000 документов
Пример
Query query = new Query(“mycollection”);
query.equalTo("_id", "aJfkipJags");
query.removeDocument(new CallbackRemoveDocument() {
@Override
public void onRemoveSucceed(ResponseRemove responseRemove) {
//succeed. See responseRemove to findout how many documents was removed
//and get list of removed documents
}
@Override
public void onRemoveFailed(String errorCode, String errorMessage) {
//error during remove operation
}
});
.setLimit(limit)
Метод для установки лимита на количество удаляемых, обновляемых и искомых документов.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
limit | Integer |
Обязательный | Лимит для установки | 15 |
Примечание
Данный метод принимает 100 в качестве максимального значения limit
Пример
Query query = new Query(“mycollection”);
query.setLimit(15);
//query.findDocuments(…);
.setSkip(skip)
Метод для пропуска части объектов перед возвратом результата совершенной выборки
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
skip | Integer |
Обязательный | Количество пропускаемых документов | 100 |
Пример
Query query = new Query(“mycollection”);
query.setSkip(12);
//query.findDocuments(…);
.setPage(page)
Метод для постраничного вывода результатов выборки
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
page | Integer |
Обязательный | Номер страницы | 2 |
Пример
Query query = new Query(“mycollection”);
//query.setLimit(15);
query.setPage(1);
//query.findDocuments(…);
.equalTo(field, value)
Метод для добавления условия выборки: только документы для которых значение поля равно значению в условии выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "orderNumber" |
value | Object |
Обязательный | Значение для сравнения | 22 |
Пример
Query query = new Query(“mycollection”);
query.equalTo(“orderNumber”, 22);
// query.findDocuments(…);
Примечание
Если вы пытаетесь задать данное условие для поля id документа, помните, что, поскольку id – первичный ключ для документа, вам нужно добавить “_” перед именем поля.
Query query = new Query(“mycollection”);
query.equalTo(“_id”, “dasds12dskm”);
//query.findDocuments(…);
.notEqualTo(field, value)
Метод для добавления условия выборки: только документы для которых значение поля не равно значению в условии выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "orderNumber" |
value | Object |
Обязательный | Значение для сравнения | 22 |
Пример
Query query = new Query(“mycollection”);
query.notEqualTo(“orderNumber”, 22);
//query.findDocuments(…);
Примечание
Если вы пытаетесь задать данное условие для поля id документа, помните, что, поскольку id – первичный ключ для документа, вам нужно добавить “_” перед именем поля.
Query query = new Query(“mycollection”);
query.equalTo(“_id”, “dasds12dskm”);
//query.findDocuments(…);
.containedIn(field, values)
Метод для добавления условия выборки: только документы у которых значение поля совпадает с одним из значений заданного массива.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "orderNumbers" |
value | List<тип поля> |
Обязательный | Массив элементов | см.пример ниже |
Пример
List<Object> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(5);
numbers.add(10);
numbers.add(15);
Query query = new Query(“mycollection”).containedIn("number3", numbers);
//query.findDocuments(…);
.containsAll(field, values)
Метод для добавления условия выборки:только документы у которых поле (типа массив) содержит все элементы заданного массива
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "orderNumbers" |
value | List<тип поля> |
Обязательный | Массив элементов | см.пример ниже |
Пример
List<Object> containsAllNumbers = new ArrayList<>();
containsAllNumbers.add(1);
containsAllNumbers.add(2);
containsAllNumbers.add(3);
containsAllNumbers.add(900);
Query query = new Query(“mycollection”).containsAll("array1", containsAllNumbers);
//query.findDocuments(…);
.notContainedIn(field, values)
Метод для добавления условия выборки: только документы у которых
- значение поля не совпадает ни с одним из значений заданного массива.
- значение поля не задано (not exist).
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "orderNumbers" |
value | List<тип поля> |
Обязательный | Массив элементов | см.пример ниже |
Пример
List<Object> notContainsInList = new ArrayList<>();
notContainsInList.add(1);
notContainsInList.add(111);
notContainsInList.add(11);
notContainsInList.add(50);
Query query = new Query(“mycollection”).notContainedIn("orderNumbers", notContainsInList)
//query.findDocuments(…);
.greaterThan(field, value)
Метод для добавления условия выборки: только документы у которых значение поля больше указанного в value значения
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
value | Integer / Double / Date |
Обязательный | Значение для сравнения | 22 |
Пример
Query query = new Query(“mycollection”).greaterThan("number", 22)
//query.findDocuments(…);
.greaterThenOrEqualTo(field, value)
Метод для добавления условия выборки: только документы у которых значение поля больше или равно указанного в value значения
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
value | Integer / Double / Date |
Обязательный | Значение для сравнения | 22 |
Пример
Query query = new Query(“mycollection”).greaterThenOrEqualTo ("number", 22)
//query.findDocuments(…);
.lessThan(field, value)
Метод для добавления условия выборки: только документы у которых значение поля меньше указанного в value значения
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
value | Integer / Double / Date |
Обязательный | Значение для сравнения | 22 |
Пример
Query query = new Query(“mycollection”). lessThan("number", 22)
//query.findDocuments(…);
.lessThanOrEqualTo(field, value)
Метод для добавления условия выборки: только документы у которых значение поля меньше или равно указанного в value значения
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
value | Integer / Double / Date |
Обязательный | Значение для сравнения | 22 |
Пример
Query query = new Query(“mycollection”).lessThanOrEqualTo ("number", 22)
//query.findDocuments(…);
.exists(field)
Метод для добавления условия выборки: только документы у которых задано значение поля, т.е поле существует и не является пустым.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
Пример
Query query = new Query(“mycollection”).exists("phoneNumber")
//query.findDocuments(…);
.doesNotExist(field)
Метод для добавления условия выборки: только документы у которых не задано значение поля, т.е поле не существует или является пустым.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
Пример
Query query = new Query(“mycollection”).doesNotExist("phoneNumber")
//query.findDocuments(…);
.contains(field, regEx, options)
Метод для добавления условия выборки: только документы у которых значение поля соответствуют заданному регулярному выражению.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
regEx | String |
Обязательный | Регулярное выражение | “aB” |
options | RegexOptions |
Необязательный | Опции регулярного выражения | см.пример ниже |
Пример
RegexOptions regexOptions = new RegexOptions();
regexOptions.setRegexCaseInsenssitive();
Query query = new Query(“mycollection”).contains("exampleField", "BC", regexOptions)
//query.findDocuments(…);
.startsWith(field, regEx, options)
Метод для добавления условия выборки: только документы у которых значение поля начинается с заданной строки
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
regEx | String |
Обязательный | Строка с которой должно начинаться значение поля | “aB” |
options | RegexOptions |
Необязательный | Опции регулярного выражения | см.пример ниже |
Примечание
Параметр options позволяет, к примеру, искать все документы начинающиеся с “aB” не зависимо от регистра, т.е искать документы, начинающиеся на ab, aB, Ab, AB.
Пример
RegexOptions regexOptions = new RegexOptions();
regexOptions.setRegexCaseInsenssitive();
Query query = new Query(“mycollection”).startsWith ("exampleField", "a", regexOptions)
//query.findDocuments(…);
.endsWith(field, regEx, options)
Метод для добавления условия выборки: только документы у которых значение поля заканчивается с заданной строки
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
regEx | String |
Обязательный | Строка, на которую должно заканчиваться значение поля | “aaB” |
options | RegexOptions |
Необязательный | Опции регулярного выражения | см.пример ниже |
Примечание
Параметр options позволяет, к примеру, искать все документы начинающиеся с “aB” не зависимо от регистра, т.е искать документы, начинающиеся на ab, aB, Ab, AB.
Пример
RegexOptions regexOptions = new RegexOptions();
regexOptions.setRegexCaseInsenssitive();
Query query = new Query(“mycollection”).startsWith ("exampleField", "a", regexOptions)
//query.findDocuments(…);
.and(field, query)
Метод логического умножения нескольких условий выборки по одному полю
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
query | Query |
Обязательный | Объект класса Query, содержащий данные для выборки | см.пример ниже |
Пример
Query query1 = new Query(COLLECTION_NAME).greaterThan("raiting", 50);
Query query2 = new Query(COLLECTION_NAME).lessThan("raiting", 100);
query1.and("number3", query2);
//query1.findDocuments(…);
.or(field, query)
Метод логического сложения нескольких условий выборки по одному полю
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
query | Query |
Обязательный | Объект класса Query, содержащий данные для выборки | см.пример ниже |
Пример
Query query1 = new Query(“mycollection”).greaterThan("raiting", 50);
Query query2 = new Query(“mycollection”).equalTo("status", 0);
query1.or("number3", query2);
//query1.findDocuments(…);
.raw(json)
Метод для задания условий выборки в формате json.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
json | String |
Обязательный | Условия выборки в формате json | "{\"_id\": {\"$eq\": \"W9vrMS9SuW\"}}" |
Пример
Query query = new Query(“mycollection”);
query.raw("{\"_id\": {\"$eq\": \"W9vrMS9SuW\"}}");
//query.findDocuments(…)
.reset()
Метод для очистки условия выборки.
Пример
Query query = new Query(“mycollection”);
query.equalTo(“_id”, “dsads123sd”);
query.reset();
query.equalTo(“_id”, “ds54522sd”);
//query.findDocuments(…)
.ascending(field)
Метод для сортировки данных указанного поля в порядке возрастания перед совершением выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
Пример
Query query = new Query("ordersCollection");
query.ascending("itemId");
//query.findDocuments(...)
.descending(field)
Метод для сортировки данных указанного поля в порядке убывания перед совершением выборки.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
field | String |
Обязательный | Имя поля, которому задается условие | "fieldname" |
Пример
Query query = new Query("ordersCollection");
query.descending("itemId");
//query.findDocuments(...)
.setFieldsForSearch(fields)
Метод для задания списка возвращаемых полей.
Параметр | Тип | Свойства | Описание | Пример значения |
---|---|---|---|---|
fields | List<String> |
Обязательный | Имена полей | см.пример ниже |
Пример
List<Strings> fieldNames = new ArrayList<>();
fieldNames.add(“orderId”);
fieldNames.add(“buyerName”);
fieldNames.add(“phoneNumber”);
Query query = new Query(“mycollection”).setFieldsForSearch(fieldNames);
//query.findDocuments(…);
.getQueryInfo()
Метод для получения информации о условиях выборки
Пример
Query query = new Query(“mycollection”);
query.equalTo(“_id”, “dsads123sd”);
QueryInfo queryInfo = query.getQueryInfo();