Difference between revisions of "MongoDB"

From air
Jump to navigation Jump to search
Line 81: Line 81:
 
show log global
 
show log global
   
use test
+
use persons
   
db.test.getIndexes()
+
db.persons.getIndexes()
   
db.test.findAll();
+
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.test.save(
+
db.persons.save(
 
{
 
{
 
firstname : "Didier",
 
firstname : "Didier",
Line 97: Line 101:
 
)
 
)
   
db.test.findAll();
+
db.persons.findAll();
   
 
// ajout d'un objet
 
// ajout d'un objet
db.test.save(
+
db.persons.save(
 
{
 
{
 
firstname : "Olivier",
 
firstname : "Olivier",
Line 110: Line 114:
 
)
 
)
   
db.test.findAll();
+
db.persons.findAll();
   
 
// ajout d'un objet
 
// ajout d'un objet
db.test.save(
+
db.persons.save(
 
{
 
{
 
firstname : "Nicolas",
 
firstname : "Nicolas",
Line 123: Line 127:
 
)
 
)
   
db.test.findAll();
+
db.persons.findAll();
   
   
 
// rechercher 2 objets
 
// rechercher 2 objets
db.test.find().limit(2)
+
db.persons.find().limit(2)
   
 
// rechercher un objet
 
// rechercher un objet
db.test.findOne()
+
db.persons.findOne()
   
 
// rechercher les objets dont le champ firstname = "Didier"
 
// rechercher les objets dont le champ firstname = "Didier"
db.test.find( { firstname : "Didier" } )
+
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.test.find( { hobbies : { $ne : null } } )
+
db.persons.find( { hobbies : { $ne : null } } )
   
   
 
// script de modification des champs "address"
 
// script de modification des champs "address"
db.test.find( { address: {$ne : null}}).forEach(
+
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.test.save(e);
+
db.persons.save(e);
 
}
 
}
 
)
 
)

Revision as of 08:53, 26 October 2014

SBGD NoSQL

Liens:

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

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

TODO