Вот статья, которую я хотел бы иметь, когда впервые пытался разобраться с MongoDB. Мне потребовалась горячая минута, чтобы понять его нетрадиционную структуру и уникальную терминологию, и я надеюсь, что после прочтения этой статьи у вас будет лучшее представление о том, как и почему он делает то, что делает!

MongoDB — это база данных NoSQL, что означает, что она не соответствует традиционной структуре реляционной базы данных, состоящей из таблиц, столбцов и строк.

Вместо этого MongoDB хранит свои данные в коллекциях, полных документов.

Давайте разберем это.

Коллекция — это эквивалент таблицы в MongoDB. Точно так же, как мы можем иметь несколько таблиц в базе данных, мы можем иметь несколько коллекций.

Данные внутри этих коллекций хранятся в документах.
Документ — это объект, который хранит свои данные с парами ключ/значение и является эквивалентом строки в таблице.

Допустим, у нас есть коллекция «Пользователи», заполненная документами.

Каждый документ в коллекции содержит данные одного пользователя и может иметь следующую структуру:

{
firstName: “Jeffery”,
lastName: “Doberman”,
contactNumber:{
 "home": 123456,
 "mobile": 123456
},
Hobbies : [“dancing”, “longboarding too fast”,“making pasta”]
}

Как видите, интересная вещь в MongoDB заключается в том, что она позволяет нам вкладывать объекты и массивы в документы, чтобы мы могли хранить данные так, как мы хотим их получить, без необходимости писать сложные предложения соединения, выбора и где.

Следует также отметить, что каждый документ не обязательноиметь одинаковую структуру или содержать нулевые свойства для полей, которые существуют в одних документах и ​​отсутствуют в других.

Например, новый пользователь Алиса может не иметь хобби или телефонов любого рода, а вместо этого может быть фанатиком кино. В этом случае ее документ мог бы выглядеть так.

{
  firstName: “Alice”,
  lastName: “Kaufferman”,
  favouriteColor: “red”,
  favouriteMovies: [“Alice in wonderland”, “Shrek 2”]
}

Теперь, когда мы лучше понимаем, как работают документы и коллекции, давайте узнаем, как выполнять некоторые основные операции CRUD.

Общий синтаксис для них выглядит следующим образом:

database.collection.QueryMethod({“key”: “value”})

Эти команды выполняются в оболочке MongoDB и используют объекты JSON для управления данными. Давайте воспользуемся этим и вставим нового пользователя в нашу коллекцию Users:

Чтобы вставить документ в нашу коллекцию, мы используем метод insert(), который принимает пары ключ/значение документа, который мы хотим вставить.

db.users.insert({ “firstName”: “Johnny”, “lastName”: “Bravo” })

Это вставит новый документ, содержащий только пары ключ/значение firstName и lastName.

Чтобы найти этот документ, мы можем использовать метод find(), который принимает поле, на которое мы нацеливаемся, и значение, которое мы хотим, чтобы оно имело.

db.users.find({“firstName” : ”Johnny”})

Это вернет все документы в коллекции Users с именем «Johnny».

Чтобы обновить документ, мы используем метод update(), который следует аналогичному формату. Сначала он принимает объект запроса, который выбирает, какие документы нужно обновить, и второй объект с оператором $set, где мы указываем, какие поля мы хотим изменить и каким должно быть их значение.

db.users.update({“firstName”: “Johnny” }, {$set : {“favouriteColor”: “Turquoise”}} )

Это найдет все документы, которые имеют имя «Джонни», и изменит их любимый цвет на бирюзовый. Это также хороший пример гибкости Mongo DB. Если поле favouriteColor не существует, оператор $set автоматически добавит его с указанным значением.

Если позже Джонни закроет свою учетную запись, и мы захотим удалить его из нашей базы данных, мы можем сделать это с помощью метода deleteOne(), который следует синтаксису, аналогичному всем вышеперечисленным!

db.users.deleteOne({“firstName”: “Johnny”})

Это приведет к удалению первого документа с именем «Johnny».

Вот и все!
Вот краткое изложение того, как работают коллекции и документы, а также общий синтаксис, который вы можете использовать для запросов к базе данных MongoDB и выполнения основных операций CRUD.

Если вы хотите погрузиться немного глубже, я также настоятельно рекомендую посетить Университет MongoDB, который полон подробных руководств и отличных ресурсов.

Удачного кодирования!