# Вибірка і сортування

Всі документ з колекції можна дістати так:

```
db.<назва_колекції>.find()
```

Першим параметром в `find` можна передати об'єкт з критеріями відбору. Спробуємо щось просте, наприклад, вибрати з колекції `users` всі документи з іменем `Богдан`:

```
db.users.find({name: "Богдан"}).pretty();
```

Хоча критерії відбору можуть бути значно складнішими.

Результат вибірки може бути не відформатованим, щоб отримати, наприклад, в консолі легкий для читання запис результату, спробуйте додати в кінці `pretty`:

```
db.<назва_колекції>.find().pretty()
```

### Проекція <a href="#proekciya" id="proekciya"></a>

Якщо ми хочемо дістати не всі поля з колекції, а лише конкретні, то слід скористатися **проекцією**.

Нехай нам потрібне лише поле `name` з документу (зверніть увагу на другий параметр):

```
db.<назва_колекції>.find({}, {name: 1})
```

Щоб отримати всі поля, крім `name`:

```
db.<назва_колекції>.find({}, {name: 0})
```

Слід зауважити, що системне поле `_id` витягується завжди:

```
> db.users.find({}, {name: 1}).pretty();
{ "_id" : ObjectId("59906c79728a58253969ffc3"), "name" : "Іван" }
{ "_id" : ObjectId("59906c1b728a58253969ffc2"), "name" : "Богдан" }
```

Крім випадків, коли явно вказано `{_id: 0}`:

```
> db.users.find({}, {name: 1, _id: 0}).pretty();
{ "name" : "Іван" }
{ "name" : "Богдан" }
```

### Сортування <a href="#sortuvannya" id="sortuvannya"></a>

Ми можемо сортувати результати `find` запиту, використовуючи метод `sort`

```
db.<назва_колекції>.find(...).sort({name: 1, age: -1})
```

де `1` — за зростанням, `-1` — за спаданням.
