Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Ce mineur crée de la monnaie numérique Monero pour soutenir Vision du web.
Merci de désactiver votre bloqueur de publicité.
Aucune publicité ne sera affichée.
Le mineur utilise les ressources de votre machine pour créer gratuitement de la monnaie numérique.
Le montant des donations pour Vision du web est de 0.035769713538725 Monero.

MongoDB : Différence entre versions

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
(Page créée avec « Category:MongoDB {{transclusion_entete}} =MongoDB= ==Communautés== https://launchpass.com/mongo-db ==Installer MongoDB sur Debian 9 Stretch== sudo apt-key adv --key... »)
(Aucune différence)

Version du 11 janvier 2018 à 17:44

Modèle:Transclusion entete

MongoDB

Communautés

https://launchpass.com/mongo-db

Installer MongoDB sur Debian 9 Stretch

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
# echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt-get update
sudo apt-get install mongodb
sudo systemctl enable mongodb.service
sudo service mongodb start
localhost:27017
Affiche : It looks like you are trying to access MongoDB over HTTP on the native driver port.
Voir le message d'erreur pour DemocracyOS !
Source : https://www.visionduweb.eu/wiki/index.php?title=Ajouter_Docker_sur_GNU_Linux#Installer_une_image_Docker_democracyos
nano /etc/mongodb.conf
# bind_ip = 0.0.0.0
bind_ip = 127.0.0.1
port = 27017
Step 2 - Securing MongoDB with a Firewall : https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-debian-8#step-2-%E2%80%94-securing-mongodb-with-a-firewall
Source : https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-debian-8

Vérifier l'état du service

systemctl status mongodb
● mongodb.service - An object/document-oriented database
  Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
  Active: active (running) since Thu 2018-01-11 15:17:33 CET; 28min ago
    Docs: man:mongod(1)
Main PID: 531 (mongod)
   Tasks: 16 (limit: 4915)
  Memory: 61.3M
     CPU: 6.835s
  CGroup: /system.slice/mongodb.service
          └─531 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
janv. 11 15:17:33 debian systemd[1]: Started An object/document-oriented database.

Lancer le shell

/usr/bin/mongo
MongoDB shell version: 3.2.11
connecting to: test
>
Ctrl+C pour quitter le shell.

Obtenir le numéro de version

db.runCommand({buildinfo: 1});

Affiche :

{
	"version" : "3.2.11",
	"gitVersion" : "009580ad490190ba33d1c6253ebd8d91808923e4",
	"modules" : [ ],
	"allocator" : "tcmalloc",
	"javascriptEngine" : "mozjs",
	"sysInfo" : "deprecated",
	"versionArray" : [
		3,
		2,
		11,
		0
	],
	"openssl" : {
		"running" : "OpenSSL 1.0.2l  25 May 2017",
		"compiled" : "OpenSSL 1.0.2l  25 May 2017"
	},
	"buildEnvironment" : {
		"distmod" : "",
		"distarch" : "x86_64",
		"cc" : "cc: cc (Debian 6.3.0-18) 6.3.0 20170516",
		"ccflags" : "-fno-omit-frame-pointer -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Wno-nonnull-compare -Wno-overflow -Winvalid-pch -Werror -O2 -Wno-unused-local-typedefs -Wno-unused- function -Wno-deprecated-declarations -Wno-unused-const-variable -Wno-unused-but-set-variable -Wno-missing-braces -fno-builtin-memcmp",
		"cxx" : "g++: g++ (Debian 6.3.0-18) 6.3.0 20170516",
		"cxxflags" : "-g -O2 -fdebug-prefix-map=/build/mongodb-1CBSnj/mongodb-3.2.11=. -fstack-protector-strong -Wformat -Werror=format-security -Wnon-virtual-dtor -Woverloaded-virtual -Wno-maybe-uninitialized -std=c++11",
		"linkflags" : "-Wl,-z,relro -fPIC -pthread -Wl,-z,now -rdynamic -fuse-ld=gold -Wl,-z,noexecstack -Wl,--warn-execstack",
		"target_arch" : "x86_64",
		"target_os" : "linux"
	},
	"bits" : 64,
	"debug" : false,
	"maxBsonObjectSize" : 16777216,
	"storageEngines" : [
		"devnull",
		"ephemeralForTest",
		"mmapv1",
		"wiredTiger"
	],
	"ok" : 1
 }
 >

Lister les bases de données

Pas de commande de création explicite comme en SQL.
Avec la commande use, MongoDB prépare en quelque sorte une base de données temporaire.
Lorsque des données sont insérées la base de données est alors définitivement créée.
show dbs
show dbs

Affiche :

local  0.000GB
use admin
Comme MongoDB vient d'être installé il est normal qu’aucune base de données n’apparaisse !
Il est possible d’obtenir davantage d’informations en utilisant la base de données admin réservée à l’administrateur.
use admin

Affiche :

switched to db admin
Afficher des informations complémentaires
db.runCommand({listDatabases: 1});

Affiche :

{
	"databases" : [
		{
			"name" : "local",
			"sizeOnDisk" : 73728,
			"empty" : false
		}
	],
	"totalSize" : 73728,
	"ok" : 1
 }
 >

Créer une collection

Une collection est l'équivalent d'une table.
db.createCollection('gens');

Affiche :

{ "ok" : 1 }
Insérer un document dans une collection
db.gens.insert( { nom: "ferrandez", prenom:"sebastien", age: 35 } );

Affiche :

WriteResult({ "nInserted" : 1 })
Lister les documents dans une collection
Équivalent à un SELECT * FROM gens
db.gens.find();

Affiche :

{ "_id" : ObjectId("5a5789a0c2249f87b72eb259"), "nom" : "ferrandez", "prenom" : "sebastien", "age" : 35 }
Insérer un nouveau document
db.gens.insert( { nom: "ferrandez", prenom:"sandrine", age: 34, sexe:"F" } );
db.gens.find();

Affiche :

{ "_id" : ObjectId("517941f3b12e1948c04f6d5e"), "nom" : "ferrandez", "prenom" : "sebastien", "age" : 35 }
{ "_id" : ObjectId("51794334b12e1948c04f6d5f"), "nom" : "ferrandez", "prenom" : "sandrine", "age" : 34, "sexe" : "F" }
Le nombre de champs n’est pas contraint par le du schéma.
Forcer son id
Les objets JSON enregistrés ont un champ _id déterminé par MongoDB.
Il est possible de forcer le sien.
Il est possible de manipuler des identifiants auto-incrémentés mais si vous insistez pour utiliser ce mécanisme offert par certains SGBDR comme MySQL c’est peut-être que vous avez une vision trop « relationnelle » de vos données ! *(1)
db.gens.insert( { _id: 10, nom: "ferrandez", prenom:"christophe", age: 40 } );
db.gens.find();

Affiche :

{ "_id" : ObjectId("517941f3b12e1948c04f6d5e"), "nom" : "ferrandez", "prenom" : "sebastien", "age" : 35 }
{ "_id" : ObjectId("51794334b12e1948c04f6d5f"), "nom" : "ferrandez", "prenom" : "sandrine", "age" : 34, "sexe" : "F" }
{ "_id" : 10, "nom" : "ferrandez", "prenom" : "christophe", "age" : 40 }

Supprimer une collection

db.gens.drop();
true

Supprimer une base de données

Utiliser use pour se connecter à la base de données à effacer
show dbs;

Affiche :

 admin   0.203125GB
 gens    0.203125GB
 local   (empty)
use gens;

Affiche :

 switched to db gens
 db.runCommand({dropDatabase: 1});
 { "dropped" : "gens", "ok" : 1 }
show dbs;

Affiche :

 admin   0.203125GB
 local   (empty)
Utiliser directement une commande
db.gens.runCommand({dropDatabase: 1});

Affiche :

 { "dropped" : "gens", "ok" : 1 }

Ressources complémentaires

Ok.png (1) MongoDB les bases pour débuter : http://www.lafabriquedecode.com/blog/2013/04/mongodb-les-bases-pour-bien-debuter/
Ok-ko.png MongoDB : Commandes de base : https://buzut.fr/commandes-de-base-de-mongodb/
Ok-ko.png MongoDB : https://doc.ubuntu-fr.org/mongodb
Ok-ko.png MongoDB avec Node.js : http://webiose.com/2016/03/tuto-utiliser-mongodb-avec-node-js/

Modèle:Transclusion navigation