MongoDB

From RHS Wiki
Revision as of 15:46, 25 February 2016 by Rafahsolis (talk | contribs)
Jump to navigation Jump to search

Installation

Ubuntu 14.04

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
# Specific version install: sudo apt-get install -y mongodb-org=3.2.1 mongodb-org-server=3.2.1 mongodb-org-shell=3.2.1 mongodb-org-mongos=3.2.1 mongodb-org-tools=3.2.1

Start/Stop/Restart MongoDB

sudo service mongod start | stop | restart

Verify that MongoDB has started successfully

Verify that the mongod process has started successfully by checking the contents of the log file at /var/log/mongodb/mongod.log for a line reading

[initandlisten] waiting for connections on port <port>

Guides

Getting Started
Before deploying MongoDB in a production environment
Manage user accounts and roles

Data directories

/var/log/mongodb
/var/lib/mongodb

Create Database

use DATABASE_NAME

Show databases

show dbs
db.adminCommand('listDatabases')
db.getMongo().getDBNames()
  • To view databases they must have data

To show the current database type:

db

Insert

db.COLLECTION_NAME.insert({"name":"data1"})

Get Colection Names

db.getCollectionNames()

Query

db.COLLECTION_NAME.find()
db.COLLECTION_NAME.find({"name": "data1"})

RDBMS Where Clause Equivalents in MongoDB

Operation Syntax Example RDBMS Equivalent
Equality {<key>:<value>} db.mycol.find({"by":"tutorials point"}).pretty() where by = 'tutorials point'
Less Than {<key>:{$lt:<value>}} db.mycol.find({"likes":{$lt:50}}).pretty() where likes < 50
Less Than Equals {<key>:{$lte:<value>}} db.mycol.find({"likes":{$lte:50}}).pretty() where likes <= 50
Greater Than {<key>:{$gt:<value>}} db.mycol.find({"likes":{$gt:50}}).pretty() where likes > 50
Greater Than Equals {<key>:{$gte:<value>}} db.mycol.find({"likes":{$gte:50}}).pretty() where likes >= 50
Not Equals {<key>:{$ne:<value>}} db.mycol.find({"likes":{$ne:50}}).pretty() where likes != 50

AND / OR Example:
Likes greater than 100 and whose title is either 'MongoDB Overview' or by is 'tutorials point'.
Equivalent sql where clause is 'where likes>10 AND (by = 'tutorials point' OR title = 'MongoDB Overview')'

db.mycol.find({"likes": {$gt:10}, $or: [{"by": "tutorials point"}, {"title": "MongoDB Overview"}]}).pretty()

Security

To enable Client Access Control follow this steps:

  1. Connect to the mongo instance without access control
       mongo --port 27017