Create Read Update Delete (CRUD) avec MongoDB
Utiliser une base de données avec mongosh :
use
Exemples de code et explication
database.collection.fonction({champ : 'entrée'}));
shnapshnoot.articles.insertOne({titre : 'Not-Only SQL (Part. 2) - MongoDB - CRUD'}));
Opérations Create
insertOne()
insertMany()

Plusieurs entrées en même temps

Opérations Read
findOne()
find()
findOne –> Retourne le PREMIER document d’une recherche.

Méthodes du curseur mongoDB
.next() -> accède au document suivant.
.hasNext() -> retourne un booléen si le curseur peut encore être itéré.
.count() -> retourne le nombre d'élément.
.pretty() -> résultat plus facile à lire.
.toArray() -> récupère les documents du curseur sous la forme d'un tableau.
Opérations Update
updateOne()
updateMany()
replaceOne()
findOneAndUpdate()
findOneAndReplace()
Les opérateurs
$set -> met à jour un champ, si il n’existe pas, il va le créer
$unset -> Supprime le champ
$inc -> incrémente un nombre
use('testdb')
db.users.updateOne(
{name: 'SeenKid BHOP'},
{
$set: {name: 'SeenKid'}
}
)
Si j’essaie de mettre a jour mon pseudo dans la base de données, voici la requête que je dois faire.


J’update le nom SeenKid BHOP en SeenKid.
Si je veux trouver un élément et le remplacer


use('testdb')
db.users.findOneAndReplace(
{name: 'SeenKid'},
{name: 'MongoDB'},
{returnNewDocument: true}
)

J’ai donc remplacé mon pseudo (SeenKid) par “MongoDB”.
Opérations Delete
deleteOne()
deleteMany()
findOneAndDelete()
drop()
dropDatabase()
Si je veux supprimer un champ, voici comment faire.
Types de données
Client : JSON
Base de données : BSON
Voici la liste complète des types (Pris de MONGODB DOCUMENTATION)
Type | Number | Alias | Notes |
---|---|---|---|
Double | 1 | “double” | |
String | 2 | “string” | |
Object | 3 | “object” | |
Array | 4 | “array” | |
Binary data | 5 | “binData” | |
Undefined | 6 | “undefined” | Deprecated. |
ObjectId | 7 | “objectId” | |
Boolean | 8 | “bool” | |
Date | 9 | “date” | |
Null | 10 | “null” | |
Regular Expression | 11 | “regex” | |
DBPointer | 12 | “dbPointer” | Deprecated. |
JavaScript | 13 | “javascript” | |
Symbol | 14 | “symbol” | Deprecated. |
JavaScript code with scope | 15 | “javascriptWithScope” | Deprecated in MongoDB 4.4. |
32-bit integer | 16 | “int” | |
Timestamp | 17 | “timestamp” | |
64-bit integer | 18 | “long” | |
Decimal128 | 19 | “decimal” | |
Min key | -1 | “minKey” | |
Max key | 127 | “maxKey” |
MongoDB Extended JSON
- créé automatiquement par MongoDB si pas spécifié lors d’un ajout
- Peut avoir n’importe quelle valeur si désiré
_id
Tous les éléments doivent avoir un champ _id unique dans la collection
ObjectID
- Type BSON
- 12 octets
- 4 pour un timestamp de création
- 5 pour avoir une valeur aléatoire
- 3 pour un compteur qui s’incrémente et démarre à une valeur aléatoire
Possible d’obtenir le timestamp de création de n’importe quel document :
ObjectidId.getTimestamp()
Insérer plusieurs documents
Les documents sont insérés dans l’ordre de déclaration
En cas d’erreur sur un document, la suite s’arrête sauf si on utilise l’option ordered false
{ "ordered": false }
Import & export de données
Format BSON :
- mongodump
- mongorestore
Format JSON et CSV :
- mongoexport
- mongoimport
paramètres utiles
-d ou –db : choisit la base de données
-c ou –collection : précise la collection
-o ou –out : précise la collection à exporter
–gzip : permet de compresser le fichier de sortie pour que sa taille soit plus faible.
Exemples
mongodump --gzip --db=shnapshnoot
mongodump --gzip --db=shnapshnoot --collection=users dump/shnapshnoot/users.bson
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.