Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

243
Views
Run my mongodb command from java program

How to run multiple mongodb commands from a java code. I need the mongodb commands to get executed in background when i run the java program. This program throws some exception "Exception in thread "main" java.io.IOException: Cannot run program "db.createCollection("employ")": error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) . . .".

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class try1
{

    public static void main(String[] args) throws Exception{

        String command ="mongo";
        String command1="db.createCollection(\"employ\")";
        Process proc = Runtime.getRuntime().exec(command);
        Process proc1 = Runtime.getRuntime().exec(command1);

        BufferedReader reader =  
              new BufferedReader(new InputStreamReader(proc.getInputStream()));
        String line = "";
        while((line = reader.readLine()) != null) {
            System.out.print(line + "\n");
        }
        proc.waitFor();   

        BufferedReader reader1 =  
              new BufferedReader(new InputStreamReader(proc.getInputStream()));
        String line1 = "";
        while((line1 = reader1.readLine()) != null) {
            System.out.print(line1 + "\n");
        }
        proc1.waitFor(); 
    }
}

I need to run a set of mongo db commands from the java program. The program works with other terminal commands like "ls"(only single command). But there is problem if we give both command1 and command as "ls". Only one ls command gets executed. If trying with only one mongo db command say, "mongo" command does not get executed completely(program does not terminate). Is it because of "proc.waitFor()".

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

i got the code. db.eval() function serves my purpose. It works perfectly. :) "query" is the String which stores the mongodb query.

 public  void qexecute()
        {
        try{String query="db.products.insert( { item: "card", qty: 15 } )";
              MongoClient mongo = new MongoClient("localhost",27017);
              DB db = mongo.getDB("test");
              DBCollection collection = db.getCollection(tablename);  
              db.eval(query);   
             }
          catch(UnknownHostException e){
              System.out.println(e);
           }
           catch (MongoException.DuplicateKey e) {
              System.out.println("Exception Caught" + e);
           }
    }
over 4 years ago · Santiago Trujillo Report

0

I strongly recommend to use Mongo Spring Data. You can do that:

import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;

public class MongoDBCollection {

public static void main(String args[]) {

    try {

        //Connect to Database
        MongoClient mongoClient = new MongoClient("localhost",27017);
        DB db = mongoClient.getDB("myDB");
        System.out.println("Your connection to DB is ready for Use::"+db);

        //Create Collection
        DBCollection linked = db.createCollection("employ",new BasicDBObject()); 
        System.out.println("Collection employ created successfully");

    } catch(Exception e) {
        System.out.println(e.getClass().getName() + ": " + e.getMessage());
    }

}

}
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!