MongoDB - Présentation

MongoDB est une base de données multi-plateforme orientée document qui offre des performances élevées, une haute disponibilité et une évolutivité facile. MongoDB travaille sur le concept de collection et de document.

Base de données

La base de données est un conteneur physique pour les collections. Chaque base de données obtient son propre ensemble de fichiers sur le système de fichiers. Un seul serveur MongoDB a généralement plusieurs bases de données.

Collection

Collection est un groupe de documents MongoDB. C'est l'équivalent d'une table RDBMS. Une collection existe dans une seule base de données. Les collections n'appliquent pas de schéma. Les documents d'une collection peuvent avoir différents champs. En règle générale, tous les documents d'une collection ont un objectif similaire ou connexe.

Document

Un document est un ensemble de paires clé-valeur. Les documents ont un schéma dynamique. Le schéma dynamique signifie que les documents de la même collection n'ont pas besoin d'avoir le même ensemble de champs ou de structure, et les champs communs dans les documents d'une collection peuvent contenir différents types de données.

Le tableau suivant montre la relation entre la terminologie du SGBDR et MongoDB.

SGBDR MongoDB
Base de données Base de données
Table Collection
Tuple / ligne Document
colonne Champ
Jointure de table Documents intégrés
Clé primaire Clé primaire (clé par défaut _id fournie par MongoDB lui-même)
Serveur et client de base de données
mysqld / Oracle Mongod
mysql / sqlplus Mongo

Exemple de document

L'exemple suivant montre la structure de document d'un site de blog, qui est simplement une paire clé / valeur séparée par des virgules.

{
   _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
      }
   ]
}

_idest un nombre hexadécimal de 12 octets qui assure l'unicité de chaque document. Vous pouvez fournir _id lors de l'insertion du document. Si vous ne fournissez pas, MongoDB fournit un identifiant unique pour chaque document. Ces 12 octets, les 4 premiers octets pour l'horodatage actuel, les 3 octets suivants pour l'ID de la machine, les 2 octets suivants pour l'ID de processus du serveur MongoDB et les 3 octets restants sont une simple valeur incrémentielle.