MongoDB est une base de données NoSQL. Sous le NoSQL parapluie nous mettons toutes ces bases de données qui n'utilisent pas le langage SQL pour interroger les données.
Caractéristiques clés de MongoDB
MongoDB est une base de données très conviviale pour JavaScript. Il expose une API JavaScript que nous pouvons utiliser pour créer des bases de données et des collections d'objets (appelés documents ).
C'est simple , ce qui signifie que vous n'avez pas besoin de prédéfinir une structure pour les données avant de les stocker.
Dans MongoDB, vous pouvez stocker n'importe quel objet sans avoir à vous soucier des champs particuliers qui composent cet objet et de la manière de les stocker. Vous dites à MongoDB de stocker cet objet.
Les données sont stockées dans un format similaire à JSON, mais amélioré pour permettre de stocker plus que des types de données de base.
Installation
Allons-y et installons MongoDB. Vous pouvez utiliser l'un des nombreux fournisseurs de cloud qui offrent l'accès à une instance MongoDB, mais pour apprendre, nous l'installerons nous-mêmes.
J'utilise un Mac, donc les instructions d'installation de ce tutoriel font référence à ce système d'exploitation.
Ouvrez le terminal et exécutez :
brew tap mongodb/brew
brew install mongodb-community
C'est tout.
Les instructions n'étaient ni trop longues ni trop compliquées, en supposant que vous sachiez comment utiliser le terminal et comment installer Homebrew.
L'installation nous dit ceci :
To have launchd start mongodb now and restart at login:
brew services start mongodb-community
Or, if you don't want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
Vous pouvez choisir de lancer MongoDB une fois et de le faire fonctionner indéfiniment en tant que service d'arrière-plan sur votre ordinateur (ce que je préfère), ou vous pouvez l'exécuter juste au moment où vous en avez besoin, en exécutant cette dernière commande.
La configuration par défaut de MongoDB est la suivante :
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
Les journaux sont stockés dans /usr/local/var/log/mongodb/mongo.log
et la base de données est stockée dans /usr/local/var/mongodb
.
Par défaut, il n'y a pas de contrôle d'accès, n'importe qui peut lire et écrire dans la base de données.
La coquille Mongo
La meilleure façon d'expérimenter MongoDB et de commencer à interagir avec lui est d'exécuter le mongo
programme, qui démarre le shell MongoDB.
Vous pouvez maintenant entrer n'importe quelle commande que Mongo comprend.
Créer une base de données
Lorsque vous démarrez, Mongo crée une base de données appelée test
. Exécutez db
dans le shell pour vous indiquer le nom de la base de données active
Pour changer de base de données, écrivez simplement use newname
et le newname
la base de données sera créée instantanément et le shell basculera pour l'utiliser.
Utiliser show databases
pour lister les bases de données disponibles :
Comme vous pouvez le voir, le something
la base de données n'est pas répertoriée, simplement parce qu'il n'y a pas encore de collection dedans. Créons-en un.
Collections
Dans MongoDB, une collection est l'équivalent d'une table de base de données SQL.
Vous créez une collection sur la base de données actuelle en utilisant le db.createCollection()
commande. Le premier argument est le nom de la base de données et vous pouvez passer un objet d'options comme second paramètre.
Une fois cela fait, show databases
listera la nouvelle base de données et show collections
listera la collection.
Vous pouvez également créer une nouvelle collection en l'utilisant comme une propriété de db
objet et en appelant insert()
pour ajouter un objet à la collection :
db.dogs.insert({ name: 'Roger' })
Liste des objets d'une collection
Pour afficher les objets ajoutés à une collection, utilisez le find()
méthode :
Comme vous pouvez le voir, il y a un _id
supplémentaire propriété pour l'enregistrement que nous avons ajouté. Cela est automatiquement généré pour nous par MongoDB.
Maintenant, ajoutez plus de chiens :
db.dogs.insert({ name: 'Buck' })
db.dogs.insert({ name: 'Togo' })
db.dogs.insert({ name: 'Balto' })
Appel de db.dogs.find()
nous donnera toutes les entrées, tandis que nous pouvons passer un paramètre pour filtrer et récupérer une entrée spécifique, par exemple avec db.dogs.find({name: 'Roger'})
:
Le find()
renvoie un curseur sur lequel vous devez itérer.
Il existe une autre méthode qui est pratique lorsque vous savez que vous n'obtiendrez qu'un seul enregistrement, qui est findOne()
, et il est utilisé de la même manière. Si plusieurs enregistrements correspondent à une requête, il ne renverra que le premier.
Mise à jour des enregistrements
Pour mettre à jour un enregistrement, vous pouvez utiliser le update()
méthode sur une collection :
Suppression d'enregistrements
Vous pouvez supprimer un enregistrement en appelant le remove()
méthode sur une collection, en passant un objet pour aider à l'identifier :
Pour supprimer toutes les entrées d'une collection, passez un objet vide :
db.dogs.remove({})