Showing posts with label MongoDB. Show all posts
Showing posts with label MongoDB. Show all posts

Saturday, March 16, 2013

How to connect two Client IP to the same mongodb using c++ Drivers


I am trying to make a client with mongo c++ drivers to connect to the database. I successfully tested the client for the localhost.The code I used for that is below.

Now I want to have the database and clients on different machines for example client on IP 10.1.2.56 and the mongodb on IP 10.1.2.57

I changes should I make in the code to achieve that. I tried to change the line

    c.connect("localhost"); //"192.168.58.1");

To


     c.connect("10.1.2.57"); //"192.168.58.1");

But that does not work
The error says "caught can't connect to server 10.1.2.57:27017 " I tried to ping the IP 10.1.2.57 and it give me the response also .


   #include <iostream>
    #include "mongo/client/dbclient.h"
    
    // g++ src/mongo/client/examples/tutorial.cpp -pthread -Isrc -Isrc/mongo
 -lmongoclient -lboost_thread-mt -lboost_system -lboost_filesystem -L[path to
 libmongoclient.a] -o tutorial
    //g++ tutorial.cpp -L[mongo directory] -L/opt/local/lib -lmongoclient 
-lboost_thread-mt -lboost_filesystem -lboost_system -I/opt/local/include 
 -o tutorial
    
    using namespace mongo;
    
    void printIfAge(DBClientConnection& c, int age) {
        auto_ptr<DBClientCursor> cursor = c.query("tutorial.persons", QUERY( "age" << age ).sort("name") );
        while( cursor->more() ) {
            BSONObj p = cursor->next();
            cout << p.getStringField("name") << endl;
        }
    }
    
    void run() {
        DBClientConnection c;
        c.connect("localhost"); //"192.168.58.1");
        cout << "connected ok" << endl;
        BSONObj p = BSON( "name" << "Joe" << "age" << 33 );
        c.insert("tutorial.persons", p);
        p = BSON( "name" << "Jane" << "age" << 40 );
        c.insert("tutorial.persons", p);
        p = BSON( "name" << "Abe" << "age" << 33 );
        c.insert("tutorial.persons", p);
        p = BSON( "name" << "Methuselah" << "age" << BSONNULL);
        c.insert("tutorial.persons", p);
        p = BSON( "name" << "Samantha" << "age" << 21 << "city" << "Los Angeles" << "state" << "CA" );
        c.insert("tutorial.persons", p);
    
        c.ensureIndex("tutorial.persons", fromjson("{age:1}"));
    
        cout << "count:" << c.count("tutorial.persons") << endl;
    
        auto_ptr<DBClientCursor> cursor = c.query("tutorial.persons", BSONObj());
        while( cursor->more() ) {
            cout << cursor->next().toString() << endl;
        }
    
        cout << "\nprintifage:\n";
        printIfAge(c, 33);
    }
    
    int main() {
        try {
            run();
        }
        catch( DBException &e ) {
            cout << "caught " << e.what() << endl;
        }
        return 0;
    }


I found the Answer of the above question

Earlier the mongod was running on the defined port and path on the Mongodb server side 
 
So I stoped the Mongodb by following command

    $ sudo stop mongodb

and once again started the server with the default defined path by the following command

    $ sudo mongod --dbpath /data/db --port 27017 

and then tried the above code in c++ and this time it connected to the remote server.

Thursday, February 14, 2013

How to Run and install the mongo c++ drivers (MongoDB) On Ubuntu Linux


Getting Started with the MongoDB C++ Driver



Follow the following steps to install mongo c++ drivers

1. First install python

First install some dependencies:
$ sudo apt-get install build-essential

$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

Then download using the following command:
$ cd Downloads/

$ wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz

Extract and go to the directory
$ tar -xvf Python-2.7.2.tgz && cd Python-2.7.2/
Now install using the command you just tried:
$ ./configure
$ make
$ sudo make altinstall


2. Install boost library by following command

$ sudo apt-get install libboost-all-dev

3. Then download the mongo c++ library and from

To download the mongo c++ drivers open the link http://dl.mongodb.org/dl/cxx-driver/ and download cxx-driver/mongodb-linux-x86_64-latest.tgz and then extract it into your home folder .
Then follow the following terminal command

$ cd mongo-cxx-driver-nightly/

$  scons

If it says to install scons then install scons by the command given below and proceed .

$ sudo apt-get install scons 

When the scons build is successful then do scons install by following step 


$ sudo scons install 

That's all 

4. Now to run the sample mongo c++ tutorial.cpp program follow the following commands

 $ cd /home/mongo-cxx-driver-nightly/src/mongo/client/examples



$ g++ tutorial.cpp -pthread -lmongoclient -lboost_thread-mt -lboost_filesystem -lboost_program_options -lboost_system -o tutorial 



$ ./tutorial
connected OK







---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
IT Certification Category (English)640x480

Partner Sites

VideoToGifs.com

EasyOnlineConverter.com

SqliteTutorials.com


Top Online Courses From ProgrammingKnowledge

Python Course http://bit.ly/2vsuMaS
Java Coursehttp://bit.ly/2GEfQMf
Bash Coursehttp://bit.ly/2DBVF0C
Linux Coursehttp://bit.ly/2IXuil0
C Course http://bit.ly/2GQCiD1
C++ Coursehttp://bit.ly/2V4oEVJ
PHP Coursehttp://bit.ly/2XP71WH
Android Coursehttp://bit.ly/2UHih5H
C# Coursehttp://bit.ly/2Vr7HEl
JavaFx Coursehttp://bit.ly/2XMvZWA
NodeJs Coursehttp://bit.ly/2GPg7gA
Jenkins Course http://bit.ly/2Wd4l4W
Scala Coursehttp://bit.ly/2PysyA4
Bootstrap Coursehttp://bit.ly/2DFQ2yC
MongoDB Coursehttp://bit.ly/2LaCJfP
QT C++ GUI Coursehttp://bit.ly/2vwqHSZ