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

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

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

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

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

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

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

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

Проекція

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

Нехай нам потрібне лише поле 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" : "Богдан" }

Сортування

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

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

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

Last updated