Difference between revisions of "MongoDB"
Line 12: | Line 12: | ||
* Correspondances avec SQL http://docs.mongodb.org/manual/reference/sql-comparison/ |
* Correspondances avec SQL http://docs.mongodb.org/manual/reference/sql-comparison/ |
||
+ | ==Premiers pas avec MongoDB== |
||
− | ==Exemples de lignes de commande Shell== |
||
Lancez le serveur |
Lancez le serveur |
||
Line 31: | Line 31: | ||
</pre> |
</pre> |
||
− | Quelques commandes d'administration |
+ | ==Quelques commandes d'administration== |
<pre> |
<pre> |
||
Line 84: | Line 84: | ||
// show log [name] prints out the last segment of log in memor |
// show log [name] prints out the last segment of log in memor |
||
show log global |
show log global |
||
+ | </pre> |
||
+ | ==Création et requêtes== |
||
+ | </pre> |
||
use persons |
use persons |
||
Revision as of 09:05, 26 October 2014
SBGD NoSQL
- écrit en C++
- tolérance aux pannes par réplication (replicat set)
- passage à l'échelle (horizontal scaling) en distribuant une base de données entre plusieurs processus mongod (sharding, guide)
- shell Javascript (plus ...)
- stockage native des objets JSON
- support de persistance pour les programmes Node.js (plus ... et Mongoose)
Liens:
- http://www.mongodb.org/
- DZone's MongoDB refcard
- Correspondances avec SQL http://docs.mongodb.org/manual/reference/sql-comparison/
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
TODO
Replication
http://docs.mongodb.org/manual/replication/