Académique Documents
Professionnel Documents
Culture Documents
Supprimer
db.<nom_collection>.drop();
Les documents
Un document c’est quoi ?
◦ Equivalent d’un enregistrement (tuple) en relationnel
◦ Deux modes d’insertion
• En utilisant la commande db.<nom_collection>.insert() du shell
• En utilisant la commande db.<nom_collection>.save() du shell
• En utilisant un driver: PHP, Ruby, Java, Python
◦ Chaque document crée contient le champ « _id »
• Généré automatiquement
• Type primary key
• Indexé
Les documents
Le format JSON c’est quoi ?
JSON (JavaScript Object Notation)
• Permet de représenter de l’information structurée
• Format de données textuelle
• Utilise une notation JavaScript
• Décrit par la RFC 4627 => Document de référence
Le format JSON
Exemple
{
"pospect" : "ALFKI",
"nom" : "ORSYS",
"adresse" : {
"numero" : 77,
"codepostal" : "31000",
"ville" : "Toulouse"
}
}
Les documents
db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
db.collection.insertMany() => Depuis la version 3.2, pour inserer plusieurs documents en une seule operation.
db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
Les opérations CRUD
Create
db.inventory.insertMany([
{ item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" },
{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "mat", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" },
{ item: "mousepad", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },
{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },
{ item: "sketchbook", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "sketch pad", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" }
]);
Les opérations CRUD
Create
Les opérations CRUD
Read
Les opérations Read permettent de retourner les documents d’une collection. MongoDB fournit les méthodes suivantes pour lire les
données d’une collection:
Pour interroger tous les documents d’une collection, on peut optionnellement passer en paramètre un document vide.
db.inventory.find({}) ou db.inventory.find();
Pour spécifier une condition d'égalité, utiliser <champ>:<valeur> dans le filtre.
db.inventory.find({status:"D"}) => La syntaxe générale est : db.collection.find(<critere(s)>)
Les operateurs logiques suivantes sont prises en compte :
- $gt => plus grand que - $all : [v1, v2, vN] => comporte toutes les valeurs
- $gte => plus grand ou égal a - $in : [v1, vN] => comporte au moins une valeur
- $lt => plus petit que - $exists : true => le champs doit exister (ou ne pas exister si false)
- $lte => plus petit ou égal a - /<chaine caractère>/ => Equivalent du LIKE en SQL
- $ne => different de
Les opérations CRUD
Read
Pour uniquement afficher le premier document de la collection
db.inventory.findOne();
db.inventory.find().limit(5);
Sélectionner tous les documents de la collection inventory dans lesquels le champ size correspond au document {h:14, w:21, uom:”cm”}
Sélectionner tous les documents dans lesquelles le champ uom du document size est égal a “in”
Sélectionner les champs item et status de la collection inventory. Seule la colonne _id s’affiche par défaut
db.inventory.find(
{ status: "A" },
{ item: 1, status: 1, "size.uom": 1 }
)
Les opérations CRUD
Update
Les operations de mise a jour modifient les document existants dans la collection. MongoDB fournit les 3 options suivantes :
db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
On peut spécifier des critères ou des filtres pour identifier les documents a modifier.
L’exemple suivant met a jour le premier document dans lequel item est égal a “paper”
db.inventory.updateOne(
{ item: "paper" },
{
$set: { "size.uom": "cm", status: "P" },
$currentDate: { lastModified: true }
}
)
L’operateur $set est utilise pour modifier la valeur du champ size.uom a “cm” et la valeur de status a “p”
Les opérations CRUD
Update
Les opérations de mise a jour modifient les document existants dans la collection. MongoDB fournit les 3 options suivantes :
db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
On peut specifier des criteres ou des filtres pour identifier les documents a modifier.
L’exemple suivant met a jour le premier document dans lequel item est égal a “paper”
db.inventory.updateOne(
{ item: "paper" },
{
$set: { "size.uom": "cm", status: "P" }
}
)
L’operateur $set est utilise pour modifier la valeur du champ size.uom a “cm” et la valeur de status a “p”
Les opérations CRUD
Mise a jour multiple
L’exemple suivant met a jour le premier document dans lequel qty est inferieur a 50.
db.inventory.updateMany(
{ "qty": { $lt: 50 } },
{
$set: { "size.uom": "in", status: "P" },
$currentDate: { lastModified: true }
}
)
L’operateur $set est utilise pour modifier la valeur du champ size.uom a “in” et la valeur de status a “P”
Remplacer un document
db.inventory.replaceOne(
{ item: "paper" },
{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)
L’exemple ci-dessus remplace le premier document de la collection inventory ou item est egal a “ paper “
Les opérations CRUD
Delete
Les operations Delete suppriment les documents dans les collections. MongoDb fournit les methides suivantes :
- db.collection.deleteOne()
- Db.collection.deleMany()
db.inventory.deleteOne({"_id":ObjectId("5e4530b08e5f2903eb47e64f")})
db.myColl.deleteMany(
{ category: "cafe", status: "A" },
{ collation: { locale: "fr", strength: 1 } }
)