About MongoDB, a cross-platform document-oriented database. Classified as a NoSQL database, MongoDB eschews the traditional table-basedrelational database structure in favor of JSON-like documents with dynamic schemas (MongoDB calls the format BSON), making the integration of data in certain types of applications easier and faster.
Here I am going to explain how to apply user-name and password(authenticate) to mongoDB's database.
#1. Open shell command. Fire this command
command - mongo
output-
MongoDB shell version: 3.0.4
connecting to: test
#2.
command - show dbs;
output-
admin 0.078GB
local 0.078GB
auth_db 0.078GB
#3.
command - use auth_db;
output-
switched to auth_db
Here, we have selected auth_db Database for apply authentication.
#4. Fire query :
db.createUser({user:"YOUR_USERNAME", pwd:"YOUR_PWD",roles:["readWrite","dbAdmin"]})
We have created User of database 'auth_db'
You can set your user-name and password to above query.
#5. Make sure authentication is true. You can set authentication = true in mongod.conf file.
Option 1: In mongod.conf, Remove comment and make it true.
auth=true;
- restart mongoDB - sudo service mongod restart
Option 2 : command to run mongodb with auth true :- mongod -auth
#6. In database config file in Nodejs
var mongoose = require('mongoose');
var uri = 'mongodb://localhost:27017/auth_db';
var options = {
user: 'YOUR_USERNAME',
pass: 'YOUR_PWD'
}
mongoose.connect(uri, options, function(err, result){
console.log('err -->' + JSON.stringify(err));
});
Without user-name and password, would not able to perform operation with database.
If you don't want to use authentication to database just make auth=true is commented in mongod.conf file or start mongo without -auth i.e mongo
do not forgot restart mongodb.
--
You can drop comment for any questions or feedback. Will get back to you soon.