|
|
@@ -1096,10 +1096,173 @@ const news = await newsRepository.find({
|
|
|
|
|
|
*i. Условия можно объединять операторами `and`, `or` и `nor`.*
|
|
|
|
|
|
-##### `like`
|
|
|
+#### Поиск по значению (сокращенная форма)
|
|
|
|
|
|
-Выполняет сопоставление с шаблоном, с учетом регистра
|
|
|
-(см. [подробнее](#операторы-сопоставления-с-шаблоном)).
|
|
|
+Находит документы, у которых значение указанного свойства в точности равно
|
|
|
+переданному значению. Это сокращенная запись для оператора `{eq: ...}`.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет все документы, где age равен 21
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ age: 21,
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `eq`
|
|
|
+
|
|
|
+Оператор строгого равенства. Находит документы, у которых значение свойства
|
|
|
+равно указанному.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет все документы, где age равен 21
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ age: {eq: 21},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `neq`
|
|
|
+
|
|
|
+Оператор неравенства. Находит документы, у которых значение свойства не равно
|
|
|
+указанному.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет все документы, где age не равен 21
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ age: {neq: 21},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `gt`
|
|
|
+
|
|
|
+Оператор "больше чем" (Greater Than). Находит документы, у которых значение
|
|
|
+свойства строго больше указанного.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет документы, где age больше 30
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ age: {gt: 30},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `lt`
|
|
|
+
|
|
|
+Оператор "меньше чем" (Less Than). Находит документы, у которых значение
|
|
|
+свойства строго меньше указанного.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет документы, где age меньше 30
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ age: {lt: 30},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `gte`
|
|
|
+
|
|
|
+Оператор "больше или равно" (Greater Than or Equal). Находит документы,
|
|
|
+у которых значение свойства больше или равно указанному.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет документы, где age больше или равен 30
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ age: {gte: 30},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `lte`
|
|
|
+
|
|
|
+Оператор "меньше или равно" (Less Than or Equal). Находит документы, у которых
|
|
|
+значение свойства меньше или равно указанному.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет документы, где age меньше или равен 30
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ age: {lte: 30},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `inq`
|
|
|
+
|
|
|
+Оператор "в списке" (In Query). Находит документы, у которых значение свойства
|
|
|
+совпадает с одним из значений в предоставленном массиве.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет документы, где name - 'John' или 'Mary'
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ name: {inq: ['John', 'Mary']},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `nin`
|
|
|
+
|
|
|
+Оператор "не в списке" (Not In Query). Находит документы, у которых значение
|
|
|
+свойства отсутствует в предоставленном массиве.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет все документы, кроме тех, где name - 'John' или 'Mary'
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ name: {nin: ['John', 'Mary']},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `between`
|
|
|
+
|
|
|
+Находит документы, у которых значение свойства находится в указанном диапазоне
|
|
|
+(включая границы).
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет документы, где age находится в диапазоне от 20 до 30 включительно
|
|
|
+const res = await rep.find({
|
|
|
+ where: {
|
|
|
+ age: {between: [20, 30]},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `exists`
|
|
|
+
|
|
|
+Проверяет наличие (или отсутствие) свойства в документе. Не проверяет значение
|
|
|
+свойства.
|
|
|
+
|
|
|
+- `true` свойство должно существовать (даже если его значение `null`);
|
|
|
+- `false` свойство должно отсутствовать;
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет документы, у которых есть свойство 'nickname'
|
|
|
+const res1 = await rep.find({
|
|
|
+ where: {
|
|
|
+ nickname: {exists: true},
|
|
|
+ },
|
|
|
+});
|
|
|
+
|
|
|
+// найдет документы, у которых нет свойства 'nickname'
|
|
|
+const res2 = await rep.find({
|
|
|
+ where: {
|
|
|
+ nickname: {exists: false},
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+#### `like`
|
|
|
+
|
|
|
+Выполняет сопоставление с шаблоном, с учетом регистра (см. [подробнее](#операторы-сопоставления-с-шаблоном)).
|
|
|
|
|
|
```javascript
|
|
|
// найдет {name: 'John Doe'}, но не {name: 'john doe'}
|
|
|
@@ -1110,10 +1273,9 @@ const res = await rep.find({
|
|
|
});
|
|
|
```
|
|
|
|
|
|
-##### `nlike` (NOT LIKE)
|
|
|
+#### `nlike`
|
|
|
|
|
|
-Находит документы, которые не соответствуют шаблону, с учетом регистра
|
|
|
-(см. [подробнее](#операторы-сопоставления-с-шаблоном)).
|
|
|
+Находит документы, которые не соответствуют шаблону, с учетом регистра (см. [подробнее](#операторы-сопоставления-с-шаблоном)).
|
|
|
|
|
|
```javascript
|
|
|
// найдет все, кроме тех, что начинаются на 'John'
|
|
|
@@ -1124,12 +1286,11 @@ const res = await rep.find({
|
|
|
});
|
|
|
```
|
|
|
|
|
|
-##### `ilike` (ILIKE)
|
|
|
+#### `ilike`
|
|
|
|
|
|
-Выполняет сопоставление с шаблоном без учета регистра
|
|
|
-(см. [подробнее](#операторы-сопоставления-с-шаблоном)).
|
|
|
+Выполняет сопоставление с шаблоном без учета регистра (см. [подробнее](#операторы-сопоставления-с-шаблоном)).
|
|
|
|
|
|
-```js
|
|
|
+```javascript
|
|
|
// найдет {name: 'John Doe'} и {name: 'john doe'}
|
|
|
const res = await rep.find({
|
|
|
where: {
|
|
|
@@ -1138,12 +1299,11 @@ const res = await rep.find({
|
|
|
});
|
|
|
```
|
|
|
|
|
|
-##### `nilike` (NOT ILIKE)
|
|
|
+#### `nilike`
|
|
|
|
|
|
-Находит строки, которые не соответствуют шаблону, без учета регистра
|
|
|
-(см. [подробнее](#операторы-сопоставления-с-шаблоном)).
|
|
|
+Находит строки, которые не соответствуют шаблону, без учета регистра (см. [подробнее](#операторы-сопоставления-с-шаблоном)).
|
|
|
|
|
|
-```js
|
|
|
+```javascript
|
|
|
// найдет все, кроме тех, что начинаются на 'John' или 'john'
|
|
|
const res = await rep.find({
|
|
|
where: {
|
|
|
@@ -1152,6 +1312,27 @@ const res = await rep.find({
|
|
|
});
|
|
|
```
|
|
|
|
|
|
+#### `regexp`
|
|
|
+
|
|
|
+Находит документы, у которых значение строкового свойства соответствует
|
|
|
+указанному регулярному выражению. Может быть передано в виде строки или
|
|
|
+объекта `RegExp`.
|
|
|
+
|
|
|
+```javascript
|
|
|
+// найдет документы, где name начинается с 'J'
|
|
|
+const res1 = await rep.find({
|
|
|
+ where: {
|
|
|
+ name: {regexp: '^J'},
|
|
|
+ },
|
|
|
+});
|
|
|
+
|
|
|
+// найдет документы, где name начинается с 'J' или 'j' (регистронезависимо)
|
|
|
+const res2 = await rep.find({
|
|
|
+ where: {
|
|
|
+ name: {regexp: '^j', flags: 'i'},
|
|
|
+ },
|
|
|
+});
|
|
|
+
|
|
|
#### Операторы сопоставления с шаблоном
|
|
|
|
|
|
Операторы `like`, `nlike`, `ilike`, `nilike` предназначены для фильтрации
|