MongoDB - przegląd
MongoDB to wieloplatformowa, zorientowana na dokumenty baza danych, która zapewnia wysoką wydajność, wysoką dostępność i łatwą skalowalność. MongoDB pracuje nad koncepcją kolekcji i dokumentu.
Baza danych
Baza danych to fizyczny kontener dla kolekcji. Każda baza danych otrzymuje własny zestaw plików w systemie plików. Pojedynczy serwer MongoDB ma zwykle wiele baz danych.
Kolekcja
Kolekcja to grupa dokumentów MongoDB. Jest odpowiednikiem tabeli RDBMS. Zbiór istnieje w jednej bazie danych. Kolekcje nie wymuszają schematu. Dokumenty w kolekcji mogą mieć różne pola. Zazwyczaj wszystkie dokumenty w kolekcji mają podobny lub powiązany cel.
Dokument
Dokument to zestaw par klucz-wartość. Dokumenty mają dynamiczny schemat. Schemat dynamiczny oznacza, że dokumenty w tej samej kolekcji nie muszą mieć tego samego zestawu pól lub struktury, a wspólne pola w dokumentach kolekcji mogą zawierać różne typy danych.
Poniższa tabela przedstawia związek terminologii RDBMS z MongoDB.
RDBMS | MongoDB |
---|---|
Baza danych | Baza danych |
Stół | Kolekcja |
Tuple / Row | Dokument |
kolumna | Pole |
Dołącz do tabeli | Dokumenty osadzone |
Klucz podstawowy | Klucz podstawowy (domyślny klucz _id dostarczony przez samą bazę danych MongoDB) |
Serwer i klient bazy danych | |
mysqld / Oracle | mongod |
mysql / sqlplus | mongo |
Przykładowy dokument
Poniższy przykład przedstawia strukturę dokumentu witryny blogu, która jest po prostu parą klucz-wartość oddzieloną przecinkami.
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
_idto 12-bajtowa liczba szesnastkowa, która zapewnia niepowtarzalność każdego dokumentu. Możesz podać _id podczas wstawiania dokumentu. Jeśli nie podasz, MongoDB zapewnia unikalny identyfikator dla każdego dokumentu. Te 12 bajtów, pierwsze 4 bajty dla bieżącego znacznika czasu, następne 3 bajty dla identyfikatora komputera, następne 2 bajty dla identyfikatora procesu serwera MongoDB i pozostałe 3 bajty to prosta wartość przyrostowa.