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.tgzand 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








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


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













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


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

 

© 2013 Klick Dev. All rights resevered.

Back To Top