e22m4u 2 лет назад
Родитель
Сommit
d364fd4447
1 измененных файлов с 58 добавлено и 1 удалено
  1. 58 1
      README.md

+ 58 - 1
README.md

@@ -233,7 +233,7 @@ const rep = schema.getRepository('place');
 Некоторые методы репозитория опционально принимают параметр `where` для
 условий выборки и/или параметр `filter` управляющий возвращаемым значением.
 
-**where**
+#### where
 
 Рассмотрим применение параметра `where` на примере метода `patch`, который
 выполняет поиск и обновление документов по определенному условию.
@@ -286,6 +286,63 @@ await rep.patch(
 `{foo: {regexp: 'ba.+'}}` оператор регулярного выражения `regexp`  
 `{foo: {regexp: 'ba.+', flags: 'i'}}` флаги регулярного выражения
 
+#### filter
+
+Методы репозитория асинхронны и возвращают `Promise` с некоторым значением.
+Параметр `filter` позволяет влиять на это значение более широким образом,
+чем просто ограничение для затрагиваемых данных. Ниже представлен список
+опциональных полей объекта `filter`, одним из которых является параметр
+`where`, который рассматривался выше.
+
+- `where` объект выборки
+- `order` указание порядка
+- `limit` ограничение количества документов
+- `skip` пропуск документов
+- `fields` выбор необходимых полей документа
+- `include` включение связанных данных в результат (см. Связи)
+
+При использовании метода `find` может потребоваться комбинация параметров
+`limit` и `skip` для механизма пагинации.
+
+```js
+// первый параметр метода `find` принимает
+// объект настроек возвращаемого результата
+const result = await rep.find({
+  limit: 12,
+  skip: 24,
+});
+```
+
+Документы могут быть отсортированы по указанным полям и в нужном
+направлении, где `ASC` - по умолчанию, или `DESC` - в обратном порядке.
+
+```js
+const result = await rep.find({
+  // по полю "featured"
+  order: 'featured',
+  // по полю "publishedAt" в обратном порядке
+  order: 'publishedAt DESC',
+  // по нескольким полям в разных направлениях
+  order: ['publishedAt DESC', 'featured ASC', 'id'],
+});
+```
+
+Сократить объем документа можно параметром `fields` указав необходимый
+набор полей.
+
+```js
+const result = await rep.find({
+  // включить в результат только поле "title"
+  fields: 'title',
+  // или поле "title", "createdAt" и "featured" 
+  fields: ['title', 'createdAt', 'featured'],
+  // первичный ключ документа
+  // указывать не обязательно
+});
+```
+
+
+
 <!--
 ```js
 // коллекция имеет три документа