Все, что вы должны знать о MongoDB

Смотрите полный курс по MongoDB на YouTube

MongoDB: введение

MongoDB, самая популярная база данных NoSQL, является документо-ориентированной базой данных с открытым исходным кодом. Термин «NoSQL» означает «нереляционная». Это означает, что MongoDB не основана на табличной структуре реляционной базы данных, а предоставляет совершенно иной механизм хранения и получения данных. Этот формат хранения данных называется BSON (аналогичен формату JSON).

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

Структура простого документа MongoDB:

{
‘title’:'MongoDb World',
‘rating’: 10,
‘duration’: 200
‘Youtube’: 'Bitfumes'
}
// It is much easy to work with this if you are using JavaScript because 
// documents are very much like JSON or JavaScript objects. 
// Secondly, it allows us to store nested documents within a document.
{
‘title’:'MongoDb World',
‘rating’: 9,
‘duration’: 400,
‘author’:{
  ‘firstname’:'…',
  ‘lastname’:'…'
}
}
Вход в полноэкранный режим Выход из полноэкранного режима

Q) Почему именно MongoDB?

-> Есть четыре основные причины:

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

2. Гибкая модель запросов:
Пользователь может выборочно индексировать некоторые части каждого документа или запроса на основе регулярных выражений, диапазонов или значений атрибутов, а также иметь столько свойств на объект, сколько необходимо для прикладного уровня.

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

4. Бессхемная модель:
Приложения получают возможность и ответственность за интерпретацию различных свойств, найденных в документах коллекции.

Особенность MongoDB

В)Но в чем разница между реляционными и нереляционными базами данных?

Структурное представление MongoDB

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

{
               _id: ObjectId("5099803df3f4948bd2f98391"),
               name: { first: "Alan", last: "Turing" },
               birth: new Date('Jun 23, 1912'),
               death: new Date('Jun 07, 1954'),
               contribs: [ "Turing machine", "Turing test", "Turingery" ],
               views : NumberLong(1250000)
            }
Вход в полноэкранный режим Выход из полноэкранного режима

Вышеуказанные поля имеют следующие типы данных:

  1. _id содержит ObjectId (который уникально генерируется MongoDB).
  2. name содержит встроенный документ (документ внутри документа), который содержит поля first и last.
  3. birth и death содержат значения типа Date.
  4. contribs содержит массив строк.
  5. views содержит значение типа NumberLong.

Давайте посмотрим, как установить MongoDB на вашу машину.

Перейдите в раздел «Установка» на сайте MongoDB.
Используйте brew для установки community edition, но вместе с brew community edition вы также получите оболочку или я могу назвать ее mongoose, но при установке windows, если вы устанавливаете эту службу MongoDB, вы можете напрямую загрузить этот MSI файл MongoDB, а затем открыть его и использовать мастер для установки, это просто, но вы должны установить mongoose явно вещь, которая поможет вам получить доступ к MongoDB из вашей оболочки из командной строки.

Или вы можете посмотреть часть установки здесь

Создание новой базы данных и коллекции

Смотреть здесь

Чтобы выполнять команды в mongosh, вы должны сначала подключиться к развертыванию MongoDB.

Чтобы отобразить используемую базу данных, введите db :

Чтобы переключить базу данных, используйте helper, как в следующем примере:

use <Database_Name>

Войти в полноэкранный режим Выйти из полноэкранного режима

Чтобы создать новую базу данных, выполните команду use с указанием базы данных, которую вы хотите создать. Например, следующие команды создают базу данных myNewDatabase и коллекцию myCollection с помощью операции insertOne():

use myNewDatabase
db.myCollection.insertOne( { x: 1 } );
Войти в полноэкранный режим Выйти из полноэкранного режима

Если коллекция не существует, MongoDB создает коллекцию, когда вы впервые сохраняете данные для этой коллекции. Это особая сила MongoDB

Как выполнять операции CRUD в MongoDB

В) Что такое CRUD?
-> Операция CRUD означает создание, чтение, обновление и удаление документов.

Вставка документов в MongoDB

Смотрите здесь

Оболочка MongoDB предоставляет следующие методы для вставки документов в коллекцию:

  • Чтобы вставить один документ, используйте db.collection.insertOne().
  • Чтобы вставить несколько документов, используйте db.collection.insertMany().

Если в документе не указано поле _id, MongoDB добавляет поле _id со значением ObjectId в новый документ.

//Example of InsertOne()

use sample_mflix
db.movies.insertOne(
  {
    title: "The Favourite",
    genres: [ "Drama", "History" ],
    year: 2018,
    directors: [ "Yorgos Lanthimos" ],
    type: "movie"
  }
)
Вход в полноэкранный режим Выход из полноэкранного режима
//Example of insertMany()

use sample_mflix
db.movies.insertMany([
   {
      title: "Jurassic World: Fallen Kingdom",
      genres: [ "Action", "Sci-Fi" ],
      year: 2018,
      directors: [ "J. A. Bayona" ],
      type: "movie"
    },
    {
      title: "Titanic",
      genres: [ "Comedy", "Action" ],
      year: 2019,
      directors: [ "Jeff Tomsic" ],
      type: "movie"
    }
])
Войти в полноэкранный режим Выход из полноэкранного режима

Запрос (поиск) документов в MongoDB

Смотрите здесь

Используйте метод db.collection.find() в оболочке MongoDB Shell для запроса (поиска) документов в коллекции.

Чтение всех документов в коллекции

Чтобы прочитать все документы в коллекции, передайте пустой документ в качестве параметра фильтра запроса в метод find.

db.movies.find()
Вход в полноэкранный режим Выход из полноэкранного режима

Указать условие равенства

Чтобы выбрать документы, соответствующие условию равенства, укажите условие как пару (поле):(значение) в документе фильтра запроса.

Чтобы вернуть все фильмы, название которых равно Titanic, из коллекции sample_mflix.movies

use sample_mflix
db.movies.find( { "title": "Titanic" } )

Войдите в полноэкранный режим Выйти из полноэкранного режима

Задание условий с помощью операторов запроса

Используйте операторы запроса в документе фильтра запроса для выполнения более сложных сравнений и оценок. Операторы запросов в документе фильтра запросов имеют следующую форму:

{ <field1>: { <operator1>: <value1> }, ... }
Войти в полноэкранный режим Выйти из полноэкранного режима

Чтобы вернуть все фильмы из коллекции sample_mflix.movies, выпущенные в 2018 или 2019 году:

use sample_mflix
db.movies.find( { rated: { $in: [ "2018", "2019" ] } } )
Войти в полноэкранный режим Выйти из полноэкранного режима

Обновление документов в MongoDB

Смотрите здесь

Оболочка MongoDB предоставляет следующие методы для обновления документов в коллекции:

  • Для обновления одного документа используйте db.collection.updateOne().
  • Для обновления нескольких документов используйте db.collection.updateMany().
  • Чтобы заменить документ, используйте db.collection.replaceOne().

Синтаксис оператора обновления

Для обновления документа MongoDB предоставляет операторы обновления, такие как $set, для изменения значений полей.
Чтобы использовать операторы обновления, передайте методам обновления документ формы update:

{
  <update operator>: { <field1>: <value1>, ... },
  <update operator>: { <field2>: <value2>, ... },
  ...
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Некоторые операторы обновления, такие как $set, создают поле, если оно не существует.

Обновление одного документа

Используйте метод db.collection.updateOne() для обновления первого документа, который соответствует заданному фильтру.

//To update the first document in the sample_mflix.movies collection where title equals "Tag":
use sample_mflix

db.movies.updateOne( { title: "Tag" },
{
  $set: {
    plot: "One month every year, five highly competitive friends
           hit the ground running for a no-holds-barred game of tag"
  }
  { $currentDate: { lastUpdated: true } }
})
Вход в полноэкранный режим Выход из полноэкранного режима

Обновление нескольких документов

Используйте метод db.collection.updateMany() для обновления всех документов, соответствующих заданному фильтру.

//To update all documents in the sample_airbnb.listingsAndReviews 
//collection to update where security_deposit is less than 100:

use sample_airbnb

db.listingsAndReviews.updateMany(
  { security_deposit: { $lt: 100 } },
  {
    $set: { security_deposit: 100, minimum_nights: 1 }
  }
)
Войти в полноэкранный режим Выйти из полноэкранного режима

Заменить документ

Чтобы заменить все содержимое документа, кроме поля _id, передайте совершенно новый документ в качестве второго аргумента в db.collection.replaceOne().

//To replace the first document from the sample_analytics.accounts
// collection where account_id: 371138:
db.accounts.replaceOne(
  { account_id: 371138 },
  { account_id: 893421, limit: 5000, products: [ "Investment", "Brokerage" ] }
)
Войти в полноэкранный режим Выход из полноэкранного режима

Удаление документов

Смотрите здесь

Оболочка MongoDB предоставляет следующие методы для удаления документов из коллекции:

  • Для удаления нескольких документов используйте db.collection.deleteMany().
  • Для удаления одного документа используйте db.collection.deleteOne().

Удалить все документы

Чтобы удалить все документы из коллекции, передайте пустой фильтр document {} в метод db.collection.deleteMany().

//To delete all documents from the sample_mflix.movies collection:

use sample_mflix
db.movies.deleteMany({})
Вход в полноэкранный режим Выход из полноэкранного режима

Удаление только одного документа, соответствующего условию

Чтобы удалить не более одного документа, соответствующего заданному фильтру (хотя ему могут соответствовать несколько документов), используйте метод db.collection.deleteOne().

//To delete the first document from the sample_mflix.movies collection 
//where the director array contains "Jeff Tomsic":

use sample_mflix
db.movies.deleteOne( { directors: "Jeff Tomsic" } )
Вход в полноэкранный режим Выход из полноэкранного режима

Это все, что вам нужно знать о MongoDB

Мы многому научились. Задавайте вопросы для уточнения и вносите исправления и предложения, я жду их. Это все с моей стороны, пожалуйста, поделитесь своими мнениями в разделе комментариев, и спасибо, что прочитали. Ознакомьтесь с другими моими статьями здесь. Также подпишитесь на мою рассылку. Следите за мной в социальных сетях. Счастливого обучения и кодинга

Подписывайтесь на мой канал YouTube

Следите за мной в Twitter

БОЛЬШОЕ СПАСИБО ЗА ВАШЕ ВРЕМЯ

Оцените статью
devanswers.ru
Добавить комментарий