No SQL
No SQL
No SQL
db.createCollection("exampleCollection", {
validator: {
$jsonSchema: {
bsonType: "object",
properties: {
name: {
bsonType: "string",
},
age: {
bsonType: "int",
minimum: 18,
maximum: 65,
},
gender: {
},
email: {
bsonType: "string",
pattern: "^.+@.+\..+$",
},
address: {
bsonType: "object",
properties: {
street: {
bsonType: "string",
},
city: {
bsonType: "string",
})
Insertion
db.exampleCollection.insertOne({
age: 30,
gender: "Male",
email: "[email protected]",
address: {
city: "Anytown"
})
Mapreducer :
Combien d’inspections ont été faites dans l’ensemble des restaurants du quartier Bronx :
Les index :
if (i % 1000 === 0) {
db.personnes.insertMany(vardoc);
vardoc = [];
Db.personnes.getIndexes()
Db.personnes.explain().find()
Créer un index :
Db.personnes.createIndex({age : 1}) / Go search for the difference between values 1 and -1 for this option
Properties :{
Operateur :
Enum : {‘’iam’’,’’orange’’},
}
17/12/2023
Mongoimport --db nom_base --collection nom_collection --drop <optionnelle> --type <optionnelle> --host
<optionnelle> --file C:\dossier\fichier.json
Exemple :
- Mode relaxe
- Mode canonique : avec les types
Sauvegarde :
Restauration:
Le principe de réplication:
Définition:
que se passera-t-il lorsque le serveur autonome se bloque ?
la réplication est un moyen de conserver des copies de serveur identiques recommandé pour tous les déploiements
de production.
La réplication est le processus de synchronisation des données sous format de copies identiques sur plusieurs
serveurs, afin d'assure la redondance et augmente la disponibilité des données. La réplication protège une base de
données contre la perte causée par l'utilisation d'un seul serveur.
Elle permet également de récupérer après une panne matérielle et ou des interruptions de service. Les copies
distantes supplémentaires des données, permettent de récupérer le service après le sinistre.
La réplication est le processus de synchronisation d'un ensemble de données sur de multiples serveurs.
La réplication fournit la haute disponibilité : si un serveur MongoDB crash, un autre prendra la relève.
Architecture de réplication
Pourquoi la réplication?
› Pour protéger vos données
Disponibilité élevée (24 h* 7j) des données
Reprise après sinistre
Pas de temps d'arrêt pour la maintenance (comme les sauvegardes, les reconstructions d'index, le compactage)
• Mise à l'échelle de lecture (copies supplémentaires à lire)
A cet effet, la réplication est fortement recommandée pour toutes les bases de données en production dès le
premier jour
La réplication sous MongoDB est une architecture composée d'un serveur principal et de nombreux serveurs
secondaires. Elle est asynchrone, le serveur principal gère lui seul les demandes des clients.
Une réplication asynchrone est une réplication dans laquelle un serveur maître écrit la transaction dans ses logs
binaires sans savoir quand ils seront pris en compte par les serveurs esclaves.
L'avantage de cette architecture est qu'elle ne ralentit pas les écritures sur le serveur maître. En revanche, rien ne
garantit que les données soient à jour sur tous les serveurs du dispositif. Tout délai ou rupture de la réplication sur
un serveur introduit une incohérence au niveau des données.
Le Replica Set
Un ensemble de répliques, ou plus communément appelé "Replica Set", correspond à un ensemble de processus
mongod qui hébergent le même ensemble de données. Le premier mongod, le mongod primaire, reçoit toutes les
opérations de lecture et écriture. Les autres instances mongod, les répliques secondaires, appliquent les instructions
reçues par le membre primaire afin d'avoir exactement le même ensemble de données. Un replica set ne peut avoir
qu'un seul membre primaire uniquement qui accepte les opérations d'écriture.
Afin de supporter la réplication, le membre primaire enregistre tous les changements réalisés sur son ensemble de
données dans son oplog (globalement on peut le qualifier de journal enregistrant toutes les opérations d'écritures
du membre).
De cette façon, les membres secondaires vont pouvoir s'appuyer sur cet oplog afin de répliquer les mêmes
opérations sur leur propre ensemble de données.
24/12/2023
Jointure : $lookup
db.eleves.aggregate([{$lookup:{"from":"devoirs","localField":"code","foreignField":"code","as":"detail_notes"}},
{$unwind: "$detail_notes"},{$group:{_id: "$nom",moyenne: {$avg: "$detail_notes.note"}}}])
db.eleves.aggregate([{$lookup:{"from":"devoirs","localField":"code","foreignField":"code","as":"detail_notes"}},
{$unwind: "$detail_notes"},{$group:{_id: "$nom",moyenne: {$sum: 1}}}])
Sécurité :
Sans authentification
Avec authentification
db.createUser({user: "Admin",
pwd: passwordPrompt () ,
31/12/2023
Exam :