Встановлення локальної 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