21 January,2019 by Rambler
MongoDB is an NoSQL document-oriented database program. These are my quick notes to support MongoDB.
How to install MongoDB Enterprise on Red Hat Linux
--create a repo file and insert the text below
vi /etc/yum.repos.d/mongodb-enterprise.repo
[mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.4/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
--install the package
sudo yum install -y mongodb-enterprise
MongoDB version
db.version()
Log Into MongoDB
mongo - <my_username> -p <password> --authenticationDatabase <my_db>
Log into MongoDB Remotely via command line
mongo -host <servername:port> -u <my_username> -p <password> --authenticationDatabase <my_db>
List all sessions
use config
db.system.sessions.aggregate( [ { $listSessions: { allUsers: true } } ] )
Show all DBs
show dbs
Create the user Administrator
Note:Once you've created the admin Users, you'll need to disconnect from the Mongo Shell & restart the Mongo Server
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Start the MongoDB service
sudo service mongod start
Start at the next system reboot
sudo chkconfig mongod on
To allow remote connections
Step1 : how to create a user in a db with readWrite
db.createUser({
user: 'robert',
pwd: 'myM0ng0_pw',
roles: [{ role: 'readWrite', db:'testdb'}]
})
Step 2 : Get the private address
/sbin/ifconfig | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
Step 3:edit mongo configuration file
--get private address from step 2 and add to bindip
vim /etc/mongod.conf
--change #security to:
security:
authorization: enabled
Step 4: Then from the terminal you can run:
First you must have the mongo cli installed in your system (https://docs.mongodb.org/manual/installation/).
mongo someurl.mongodomain.com:45475/database_name -u username -p password
List all databases on a Mongo Server
show dbs
Create a database
To create a new database
in MongoDB, first: select the database to use
use my_new_database
To then check which database you're on
> db
my_new_database
You must then enter at least one document to create the db
> db.new_collection.insert({ some_key: "some_value" })
Show current Mongo db
db
db.getName()
Switch database used
use MY_DATABASE_NAME
List users
db.getUsers() or show users
Create a role with specific access limited to a collection
db.createRole({role: 'readRole', privileges: [{resource: {db:'mydb', collection:'mycollection'}, actions:['find']}], roles: [{role:'read',db:'mydb'}]})
db.createUser({
user: 'myuser',
pwd: 'my_pwd',
roles: [{ role: 'readRole', db:'mydb'}]
})
MongoDB Admin password change
Note:the user making the change must have Administrator privileges
db.changeUserPassword(‘adminusr’,’<new_password>’)
Drop a user
use testdb
db.dropUser("myUser1", {w: "majority", wtimeout: 5000})
Create a collection and insert on the fly
db.jacktest.insert ({ name: "Jack Vamvas", company: "dba-ninja.com" })
Create an index on a collection
**This is an indepth topic that requires further development - but this is a sample example
db.jacktest.createIndex({"name.$**":1});
List indexes of a collection
db.jacktest.getIndexes();
List all collections in current database (extended information)
db.getCollectionInfos();
List all collections in current database (abbreviated)
db.getCollectionNames();
Read all rows in a collection
db.collection_name.find()
Get the current status of the replicaset
Note:returns the current status of the replicaset perspective from the server where command is executed
db.adminCommand( { replSetGetStatus: 1 } );
There are other NoSQL offers in other major DBMS such as SQL Server , and I'll post a feature comparison soon . Asking the question : What are your data needs? is the first step in deciding the platform
This is only a preview. Your comment has not yet been posted.
As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.
Having trouble reading this image? View an alternate.
Posted by: |