Un guide rapide pour vous montrer comment effectuer les opérations de base telles que créer, mettre à jour, rechercher, supprimer des enregistrements et indexer dans MongoDB. Cet exemple utilise MongoDB 2.0.7, fonctionnant sous Mac OS X 10.8, le client MongoDB et la console du serveur sont exécutés sur localhost, sur le même ordinateur.
1. Installez MongoDB
Installez MongoDB sur le lien://mongodb/comment-installer-mongodb-sur-windows/[Windows], sur le lien://mongodb/comment installer-mongodb-sur-ubuntu/[Ubuntu]ou le lien://mongodb/comment-installer-mongodb-sur-mac-os-x/[Mac OS X]. L’installation est facile, il suffit de télécharger le fichier zip MongoDB, extra et de lancer la commande -
$ MongoDB-folder/bin/mongod
.
Utilise
mongod
pour démarrer MongoDB.
$./mongod Tue Sep 11 21:55:36[initandlisten]MongoDB starting : pid=72280 port=27017 dbpath=/data/db/64-bit host=Yongs-MacBook-Air.local Tue Sep 11 21:55:36[initandlisten]db version v2.0.7, pdfile version 4.5 Tue Sep 11 21:55:36[initandlisten]options: {} Tue Sep 11 21:55:36[initandlisten]journal dir=/data/db/journal Tue Sep 11 21:55:36[initandlisten]recover : no journal files present, no recovery needed Tue Sep 11 21:55:36[websvr]admin web console waiting for connections on port 28017 Tue Sep 11 21:55:36[initandlisten]waiting for connections on port 27017
2. Connecter MongoDB
Pour connecter MongoDB, utilise
$ MongoDB-folder/bin/mongo
$ ./mongo MongoDB shell version: 2.0.7 connecting to: test
3. Créer une base de données ou une table (collection)
Dans MongoDB, la base de données et la table sont créées automatiquement lors de la première insertion de données. Utilise
use database-name
pour passer à votre base de données (même si celle-ci n’a pas encore été créée)
Dans l’exemple ci-dessous, après avoir inséré un seul enregistrement, la base de données «mkyong» et la table «utilisateurs» sont créées à la volée.
$ ./mongo MongoDB shell version: 2.0.7 connecting to: test > use mkyong switched to db mkyong > db.users.insert({username:"mkyong",password:"123456"}) > db.users.find() { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "username" : "mkyong", "password" : "123456" }
Trois commandes de base de données à connaître.
-
show dbs
- Liste toutes les bases de données. -
use nom bd
- bascule vers nom__bd. -
show collections
- Liste toutes les tables de la base de données actuellement sélectionnée.
4. Insérer un enregistrement
Pour insérer un enregistrement, utilise
db.tablename.insert ({data})
ou
db.tablename.save ({data})
, les deux fonctionnent, aucune idée de la raison pour laquelle MongoDB les a créés.
> db.users.save({username:"google",password:"google123"}) > db.users.find() { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "username" : "mkyong", "password" : "123456" } { "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" }
5. Mettre à jour un enregistrement
Pour mettre à jour un enregistrement, utilise
db.tablename.update ({critères}, {$ set: {nouvelle valeur}})
. Dans l’exemple ci-dessous, le mot de passe du nom d’utilisateur: «mkyong» est mis à jour.
> db.users.update({username:"mkyong"},{$set:{password:"hello123"}}) > db.users.find() { "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" } { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "password" : "hello123", "username" : "mkyong" }
6. Trouver des enregistrements
Pour rechercher ou interroger des enregistrements, utilisez
db.tablename.find ({critère})
.
-
6.1 ** Liste tous les enregistrements de la table “utilisateurs”.
> db.users.find() { "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" } { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "password" : "hello123", "username" : "mkyong" }
-
6.2 ** Trouver les enregistrements dont le nom d’utilisateur est “google”
> db.users.find({username:"google"}) { "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" }
-
6.3 ** Trouver des enregistrements dont la longueur du nom d’utilisateur est inférieure ou égale à 2
db.users.find({$where:"this.username.length<=2"})
-
6.4 ** Trouver les enregistrements dans lesquels le champ Nom d’utilisateur existe.
db.users.find({username:{$exists : true}})
7. Supprimer l’enregistrement
Pour supprimer un enregistrement, utilisez
db.tablename.remove ({critère})
. Dans l’exemple ci-dessous, l’enregistrement du nom d’utilisateur "google" est supprimé.
> db.users.remove({username:"google"}) > db.users.find() { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "password" : "hello123", "username" : "mkyong" }
-
Remarque ** + Pour supprimer tous les enregistrements d’une table, utilisez
db.tablename.remove ()
. + Pour supprimer la table, utilisedb.tablename.drop ()
.
8. Indexation
Index peut vous aider à augmenter la vitesse d’interrogation des données.
-
8.1 ** Répertorie tous les index de la table "utilisateurs". Par défaut, la colonne "__id" est toujours la clé primaire et est créée automatiquement.
> db.users.getIndexes()[ { "v" : 1, "key" : { "__id" : 1 }, "ns" : "mkyong.users", "name" : "__id__" }]>
-
8.2 ** Pour créer un index, utilise
db.tablename.ensureIndex (column)
. Dans l’exemple ci-dessous, un index est créé dans la colonne "nom d’utilisateur".
> db.users.ensureIndex({username:1}) > db.users.getIndexes()[ { "v" : 1, "key" : { "__id" : 1 }, "ns" : "mkyong.users", "name" : "__id__" }, { "v" : 1, "key" : { "username" : 1 }, "ns" : "mkyong.users", "name" : "username__1" }].... ** 8.3 ** Pour supprimer un index, utilise `db.tablename.dropIndex (column)`. Dans l'exemple ci-dessous, l'index de la colonne "nom d'utilisateur" est supprimé ou supprimé.
db.users.dropIndex({username:1}) { "nIndexesWas" : 2, "ok" : 1 } db.users.getIndexes()[ { "v" : 1, "key" : { " id" : 1 }, "ns" : "mkyong.users", "name" : " id__" }]>
** 8.4 ** Pour créer un index unique, utilise `db.tablename.ensureIndex ({column}, {unique: true})`. Dans l'exemple ci-dessous, un index unique est créé dans la colonne "nom d'utilisateur".
db.users.ensureIndex({username:1},{unique:true}); db.users.getIndexes()[ { "v" : 1, "key" : { " id" : 1 }, "ns" : "mkyong.users", "name" : " id " }, { "v" : 1, "key" : { "username" : 1 }, "unique" : true, "ns" : "mkyong.users", "name" : "username 1" }]….
10. Aide
Enfin, utilise
help ()
pour vous guider dans la gestion de MongoDB
10.1
help
- Toutes les commandes disponibles.
> help db.help() help on db methods db.mycoll.help() help on collection methods rs.help() help on replica set methods help admin administrative help help connect connecting to a db help help keys key shortcuts //...
10.2
db.help ()
- Affiche l’aide sur la base de données.
> db.help() DB methods: db.addUser(username, password[, readOnly=false]) db.auth(username, password) db.cloneDatabase(fromhost) db.commandHelp(name) returns the help for the command db.copyDatabase(fromdb, todb, fromhost) //...
10.3
db.collection.help ()
- Affiche l’aide sur la collection (table).
> db.users.help() DBCollection help db.users.find().help() - show DBCursor help db.users.count() db.users.dataSize() db.users.distinct( key ) - eg. db.users.distinct( 'x' ) db.users.drop() drop the collection db.users.dropIndex(name) //...
10.4
db.collection.function.help ()
- Affiche l’aide sur la fonction.
> db.users.find().help() find() modifiers .sort( {...} ) .limit( n ) .skip( n ) .count() - total # of objects matching query, ignores skip,limit .size() - total # of objects cursor would return, honors skip,limit .explain([verbose]) //...
Terminé. J’espère que ce résumé des commandes MongoDB pourra aider les autres.
Références
-
http://www.mongodb.org/display/DOCS/Tutorial [Official MongoDB
tutoriels]. MongoDB Indexes
lien://tag/hello-world/[hello world]lien://tag/mongodb/[mongodb]