MongoDB: Difference between revisions
Jump to navigation
Jump to search
| Line 81: | Line 81: | ||
show log global |
show log global |
||
use |
use persons |
||
db. |
db.persons.getIndexes() |
||
db. |
db.persons.findAll(); |
||
// création d'un index sur lastname pour les requêtes de type db.persons.find( { lastname: "Donsez" } ) |
|||
db.persons.ensureIndex( { lastname: 1 } ) |
|||
// ajout d'un objet |
// ajout d'un objet |
||
db. |
db.persons.save( |
||
{ |
{ |
||
firstname : "Didier", |
firstname : "Didier", |
||
| Line 97: | Line 101: | ||
) |
) |
||
db. |
db.persons.findAll(); |
||
// ajout d'un objet |
// ajout d'un objet |
||
db. |
db.persons.save( |
||
{ |
{ |
||
firstname : "Olivier", |
firstname : "Olivier", |
||
| Line 110: | Line 114: | ||
) |
) |
||
db. |
db.persons.findAll(); |
||
// ajout d'un objet |
// ajout d'un objet |
||
db. |
db.persons.save( |
||
{ |
{ |
||
firstname : "Nicolas", |
firstname : "Nicolas", |
||
| Line 123: | Line 127: | ||
) |
) |
||
db. |
db.persons.findAll(); |
||
// rechercher 2 objets |
// rechercher 2 objets |
||
db. |
db.persons.find().limit(2) |
||
// rechercher un objet |
// rechercher un objet |
||
db. |
db.persons.findOne() |
||
// rechercher les objets dont le champ firstname = "Didier" |
// rechercher les objets dont le champ firstname = "Didier" |
||
db. |
db.persons.find( { firstname : "Didier" } ) |
||
// rechercher les objets dont le champ hobbies n'est pas null |
// rechercher les objets dont le champ hobbies n'est pas null |
||
db. |
db.persons.find( { hobbies : { $ne : null } } ) |
||
// script de modification des champs "address" |
// script de modification des champs "address" |
||
db. |
db.persons.find( { address: {$ne : null}}).forEach( |
||
function update(e) { |
function update(e) { |
||
var address = e.address; |
var address = e.address; |
||
| Line 146: | Line 150: | ||
e.address.way = address; |
e.address.way = address; |
||
e.address.city = ""; |
e.address.city = ""; |
||
db. |
db.persons.save(e); |
||
} |
} |
||
) |
) |
||
Revision as of 06:53, 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/
Exemples de lignes de commande Shell
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.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
use persons
db.persons.getIndexes()
db.persons.findAll();
// création d'un index sur lastname pour les requêtes de type db.persons.find( { lastname: "Donsez" } )
db.persons.ensureIndex( { lastname: 1 } )
// 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()
// 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