MongoDB

From air
Jump to navigation Jump to search

SBGD NoSQL

Liens:

Premiers pas avec MongoDB

Lancez le serveur

./bin/mongod --rest --dbpath ./data/db

""Remarque"" : en production, ajoutez les options ./bin/mongod --nohttpinterface --bing_ip <address> --auth --logappend ... --dbpath ./data/db

Ouvrez les pages d'administration via le serveur HTTP et l'interface REST

Lancez le shell

./bin/mongo

Quelques commandes d'administration


// Quelques commandes d'administration
help

db.help()

db.version()

db.stats()

db.serverStatus()

db.currentOp()

db.killOp(1234)

prompt=function() { return (new Date())+"$ "; }

db.getLastError()

// db.serverCmdLinesOpts() n'existe plus

db.collection.totalIndexSize()

db.collection.getIndexStats()

db.shutdownServer()

Relancez le serveur mongod


//	show dbs                     show database names
show dbs

//	show collections             show collections in current database
show collections

//	show users                   show users in current database
show users

//	show profile                 show most recent system.profile entries with time >= 1ms
show profile

//	show logs                    show the accessible logger names
show logs

//	show log [name]              prints out the last segment of log in memor
show log global

Création et requêtes

use persons

db.persons.getIndexes()


// création d'un index sur lastname pour les requêtes de type // * db.persons.find( { lastname: "Donsez" } ) // * db.persons.find().sort( { lastname: 1 } )

db.persons.ensureIndex( { lastname: 1 } )

db.persons.getIndexes()

db.persons.findAll()

// ajout d'un objet db.persons.save( {

   firstname : "Didier",
   lastname : "Donsez",
   job : "Professor",
   skill : ["SE","OSGi"],

} )

db.persons.findAll();

// ajout d'un objet db.persons.save( {

   firstname : "Olivier",
   lastname : "Richard",
   job : "Professor",
   skill : ["Network","Grid"],
   hobbies: ["3D printing", "DIY"],

} )

db.persons.findAll();

// ajout d'un objet db.persons.save( {

   firstname : "Nicolas",
   lastname : "Palix",
   job : "Professor",
   skill : ["OS","Phycomp"],
   address: "Saint Martin d'Hères",

} )

db.persons.findAll()


// rechercher 2 objets db.persons.find().limit(2)

// rechercher un objet db.persons.findOne()

// sortie triée sur le nom db.persons.find().sort( { lastname: 1 } )

// rechercher les objets dont le champ firstname = "Didier" db.persons.find( { firstname : "Didier" } )

// rechercher les objets dont le champ hobbies n'est pas null db.persons.find( { hobbies : { $ne : null } } )

// script de modification des champs "address" db.persons.find( { address: {$ne : null}}).forEach(

   function update(e) {
       var address = e.address;
       e.address = new Object();
       e.address.way = address;
       e.address.city = "";
       db.persons.save(e);
   }

)

exit

./bin/mongostat

Utilisation de l'interface RESTFul

http://127.0.0.1:28017/test/test

curl -GET http://127.0.0.1:28017/test/test

Utilisation avec Node.js et Mongoose

Voir Mongoose

Utilisation avec Node-RED

Node RED with MQTT, OpenHAB, MongoDB, Redis.io, RabbitMQ, Moquette, Mosquitto ...

TODO

Replication

http://docs.mongodb.org/manual/replication/

Sharding

http://docs.mongodb.org/manual/core/sharding-introduction/