Встановлення локальної MongoDB і основні команди
Встановлення і запуск
Просунуті розробники можуть встановити MongoDB локально на комп'ютер. Скористаємося інструкцією встановлення MongoDB для MacOS.
Якщо на комп'ютері не встановлено Xcode, то потрібно через термінал встановити командний рядок Xcode.
xcode-select --install
На комп'ютері потрібно встановити Homebrew, який дозволяє з командного рядка встановлювати додаткові пакети.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Тепер через Homebrew потрібно встановити формулу для роботи з MongoDB
brew tap mongodb/brew
Оновити Homebrew до останньої версії
brew update
Встановити локальну версію MongoDB 6.0 Community Edition.
brew install mongodb-community@6.0
Щоб запустити локальну версію MongoDB виконайте таку команду в терміналі.
brew services start mongodb-community@6.0
Щоб зупинити MongoDB виконайте таку команду в терміналі
brew services stop mongodb-community@6.0
Додаткові налаштування можна перевірити на офіційному сайті MongoDB.
Щоб під'єднатися до локальної версії MongoDB використовуємо таку адресу.
mongodb://localhost:27017/

Можна скористатися програмою Compass

Можна під'єднатися і за допомогою програми Robo 3T.

Основні команди MongoDB
mongosh - команда для заходу до MongoDB через термінал

show dbs - Команда, щоб переглянути, які є наразі бази даних в MongoDB.

use - Команда для створення бази даних, або звернення до неї, якщо вже існує. (Якщо бази не було то створить, якщо була то звернеться до неї)

db - Команда, яка покаже в якій базі даних ми перебуваємо
show collections - показати колекції, які є в базі даних. Якщо Колекцій немає, то нічого не покаже.
insertOne - метод додавання одного документа до колекції в базі даних. Перебуваючи в базі даних вказуємо через крапку db потім назву колекції, потім назву метода і в нього передаємо як аргумент обʼєкт який хочемо записати в колекцію.
db.users.insertOne({name: "Khomiak", year: 1986})

Як бачимо, згенерувався унікальний _id, структуру якого розглядали раніше. Подивимося через Compass і Robo 3T на структуру нашої бази даних. У базі даних users створилася колекція users, а в ній документ з переданими даними у формі обʼєкта.


insertMany - Метод додавання кількох документів до колекції в базі даних. передають масив обʼєктів. А метод insert може передавати як один, так і кілька документів.
db.users.insertMany([{name: "Christ", year: 0}, {name: "Mahatma Gandhi", year: 1869}])


Обмеження щодо використання імен ключів:
Символ $ не може бути першим символом в імені ключа
Ім'я ключа не може містити символ крапки .
Не використовуйте ім'я _id
find - Метод, який робить вибірку із колекції в базі даних за певним параметром. Повертає масив обʼєктів де є збіг. (Якщо не вказати аргумент, то поверне всю колекцію).
db.users.find({_id: ObjectId("64c2620d7257b2021a090e1a")})

Вибірки за умовами. Можна вибірку робити прописуючи умови пошуку. Для цього використовують спеціальні оператори (MongoDB Operators). Наприклад $lt - less than, вибере все менше за вказане число. $gt - greater than, вибере все що більше за вказане число. ($eq - дорівнює, $gte - більше або дорівнює, $lte - менше або дорівнює
db.users.find({year: { $gt: 1900 }})

Можна, наприклад, вибірку з бази робити використовуючи логічні оператори (наприклад $or для об'єднання вибірок або $and, коли перетинаються вибірки тощо).
db.users.find({ $or: [ {year: { $gt: 1900 }}, { name: "Christ" } ] })

Якщо ми хочемо якесь поле прибрати з відповіді, то потрібно його вказати другим параметром.
db.users.find({year: { $gt: 1900 }}, {year: 0})

А якщо навпаки хочемо лишити поля, а всі інші не повертати, то пишемо другим параметром обʼєкт із назвами параметрів і 1 після двокрапки {year: 1}. Тоді в результаті будуть тільки зазначені поля. Поле _id виводиться завжди. його можна прибрати тільки примусово _id: 0.
Якщо всередині документа є поле яке представляє об'єкт, то вибірку і пошук можемо робити через крапку і назву параметра.
db.users.find({'additional.nationality': 'ukr' })
limit - обмеження вибірки в межах вказаного числа
db.users.find().limit(3);
skip - Пропускає вказану кількість документів із вибірки
sort - сортування вибірки за певним полем за зростанням (1) або спаданням (-1). наприклад sort({ name: 1 })
db.users.find().sort({ year: 1 });
count - повертає кількість документів у колекції.
db.users.count();
$exists - оператор який включає до вибірки тільки ті документи які містять певне поле
db.users.find({additional: {$exists: true} });
$type - повертає у вибірку тільки ті документи в яких поле є певного типу
db.users.find({year: {$type: 'number'} });
$regex - задає регулярний вираз якому має відповідати поле.
Результати вибірки називають курсорами
const cursor = db.users.find();
Вся докладна документація на сайті проєкту MongoDB.
deleteOne, deleteMany - методи видалення одного або документів із колекції, які задовольняють умову.
db.users.deleteOne({_id: ObjectId("64c2620d7257b2021a090e1b")})


Також документ із колекції можна видалити методом remove (синтаксис такий само).
updateOne, updateMany - методи оновлення одного або документів із колекції, які задовольняють умову. Першим параметром передають умову, а другим, обʼєкт з полями, які треба оновити.
db.users.updateOne({_id: ObjectId("64c25d427257b2021a090e19")}, { $set: {name: "Oleksandr Khomiak"}})


Покликання:
Last updated