Exemple MongoDB hello world

Bonjour tout le monde

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.

  1. show dbs - Liste toutes les bases de données.

  2. use nom bd - bascule vers nom__bd.

  3. 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, utilise db.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

tutoriels]. MongoDB Indexes

lien://tag/hello-world/[hello world]lien://tag/mongodb/[mongodb]