Monday 1 July 2013

Simple CRUD with MongoDB


Create Database:

        You don't really create a database with mongo, you just kind of start using it. Once you put something in there, it exists. I'm going to name my new database  'employee'

                   > use  employee
                    switched to db employee

Adding Data:

   To do anything in mongo, you start your command with db which refers to the database you're using. The different parts of the command are separated by dots. To insert data you use a command like db.[collection].save() and feed in the data to save. The format of the data is JSON-esque - I read JSON but I don't really write it, however I found it became familiar pretty quickly. To insert some data, you can do

 >db.new_employee.save({name:'Gowthaman',mobilno:'8870226416',email:'gowthaman.ideas2it@gmail.com'});
>db.new_employee.save({name:'Prem',mobilno:'123456',email:'prems.ideas2it@gmail.com'}) ;

Fetching Data

   Did anything happen? We can check, using db.[collection].find() - this will give us everything in the collection, a bit like select * from [table] does in SQL.

  >db.new_employee.find(); 
{ "_id" : ObjectId("51d1301bd4c11d09b2f1f117"), "name" : "Gowthaman", "mobilno" : "8870226416", "email" : "gowthaman.ideas2it@gmail.com" } 
{ "_id" : ObjectId("51d13039d4c11d09b2f1f118"), "name" : "Prem", "mobilno" : "123456", "email" : "prems.ideas2it@gmail.com" } 

We definitely have data! We can also filter this down, the equivalent of adding a "where" clause, for

> db.new_employee.find({name:'Gowthaman'}); 

{ "_id" : ObjectId("51d1301bd4c11d09b2f1f117"), "name" : "Gowthaman", "mobilno" : "8870226416", "email" : "gowthaman.ideas2it@gmail.com" } 

You can add multiple constraints here,

>db.new_employee.find({name:'Gowthaman',email:'gowthaman.ideas2it@gmail.com'}); 
{ "_id" : ObjectId("51d1301bd4c11d09b2f1f117"), "name" : "Gowthaman", "mobilno" : "8870226416", "email" : "gowthaman.ideas2it@gmail.com" }

Updating Data

Find by name

> db.new_employee.find({name:'Gowthaman'}); 
{ "_id" : ObjectId("51d1301bd4c11d09b2f1f117"), "name" : "Gowthaman", "mobilno" : "8870226416", "email" : "gowthaman.ideas2it@gmail.com" } 

Update email   by name 

> db.new_employee.update({name:'Gowthaman'},{$set {email:'vimalgowthaman14@gmail.com'}}); 

Verify record update 

> db.new_employee.find({name:'Gowthaman'}); 
{ "_id" : ObjectId("51d1301bd4c11d09b2f1f117"), "email" : "vimalgowthaman14@gmail.com", "mobilno" : "8870226416", "name" : "Gowthaman" } 


Deleting Data

Find  all records

  > db.new_employee.find(); 
{ "_id" : ObjectId("51d1301bd4c11d09b2f1f117"), "email" : "vimalgowthaman14@gmail.com", "mobilno" : "8870226416", "name" : "Gowthaman" } 
{ "_id" : ObjectId("51d13039d4c11d09b2f1f118"), "name" : "Prem", "mobilno" : "123456", "email" : "prems.ideas2it@gmail.com" } 


Delete Record by name

> db.new_employee.remove({name:'Prem'}); 

verify record deleted

> db.new_employee.find(); 
{ "_id" : ObjectId("51d1301bd4c11d09b2f1f117"), "email" : "vimalgowthaman14@gmail.com", "mobilno" : "8870226416", "name" : "Gowthaman" } 
   

Refer: getting-started-with-mongodb

Tuesday 25 June 2013

JavaScript execution failed: Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:L112



If you are running Ubuntu, then there is an issue with folder ownership.

Run these commands:

    Stop mongodb service

                  sudo service mongodb stop

    Remove mongodb lock file

                   sudo rm /var/lib/mongodb/mongod.lock

    Change ownership from root to mongodb path

                 sudo chown -R mongodb:mongodb /var/lib/mongodb/

    Start mongodb service

                 sudo service mongodb start

    Test mongo app

                  mongo

Then you will be able to execute successfully.

   Refer:dba.stackexchange
 

Install MongoDB on Ubuntu



The Ubuntu package management tool (i.e. dpkg and apt) ensure package consistency and authenticity by requiring that distributors sign packages with GPG keys. Issue the following command to import the 10gen public GPG Key:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Create a /etc/apt/sources.list.d/10gen.list file using the following command.

 echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/10gen.list


Now issue the following command to reload your repository:

      sudo apt-get update


Install Packages
     Issue the following command to install the latest stable version of MongoDB:

             sudo apt-get install mongodb-10gen
     
   When this command completes, you have successfully installed MongoDB! Continue for configuration 
 and start-up suggestions.

Manage Installed Versions

You can use the mongodb-10gen package to install previous versions of MongoDB. To install a specific release, append the version number to the package name, as in the following example:

apt-get install mongodb-10gen=2.2.3

This will install the 2.2.3 release of MongoDB. You can specify any available version of MongoDB; however apt-get will upgrade the mongodb-10gen package when a newer version becomes available. Use the following pinning procedure to prevent unintended upgrades.

To pin a package, issue the following command at the system prompt to pin the version of MongoDB at the currently installed version:

echo "mongodb-10gen hold" | sudo dpkg --set-selections


Configure MongoDB

These packages configure MongoDB using the /etc/mongodb.conf file in conjunction with the control script. You will find the control script is at /etc/init.d/mongodb.

This MongoDB instance will store its data files in the /var/lib/mongodb and its log files in /var/log/mongodb, and run using the mongodb user account.

Note If you change the user that runs the MongoDB process, you will need to modify the access control rights to the /var/lib/mongodb and /var/log/mongodb directories.

Controlling MongoDB

Starting MongoDB

You can start the mongod process by issuing the following command:
   
     sudo service mongodb start

You can verify that mongod has started successfully by checking the contents of the log file at 

     /var/log/mongodb/mongodb.log.

Stopping MongoDB

      As needed, you may stop the mongod process by issuing the following command:

          sudo service mongodb stop

Restarting MongoDB
You may restart the mongod process by issuing the following command:

sudo service mongodb restart


Using MongoDB

Among the tools included with the MongoDB package, is the mongo shell. You can connect to your MongoDB instance by issuing the following command at the system prompt:

mongo