从java程序运行我的mongodb命令

从java程序运行我的mongodb命令,java,linux,mongodb,Java,Linux,Mongodb,如何从java代码运行多个mongodb命令。当我运行java程序时,我需要在后台执行mongodb命令。此程序引发一些异常“线程中的异常”main“java.io.IOException:无法运行程序“db.createCollection(“employ”):error=2,java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)处没有此类文件或目录…” 我需要从java程序运行一组mongo db命令。该程序与其他终端命令一起工作,如

如何从java代码运行多个mongodb命令。当我运行java程序时,我需要在后台执行mongodb命令。此程序引发一些异常“线程中的异常”main“java.io.IOException:无法运行程序“db.createCollection(“employ”):error=2,java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)处没有此类文件或目录…”


我需要从java程序运行一组mongo db命令。该程序与其他终端命令一起工作,如“ls”(仅一个命令)。但如果我们将command1和command都指定为“ls”,则会出现问题。只执行一个ls命令。如果仅使用一个mongo db命令进行尝试,则表示“mongo”命令无法完全执行(程序不会终止)。是因为“proc.waitFor()”吗

我强烈建议使用Mongo Spring数据。你可以这样做:

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());
    }

}

}

我强烈建议使用Mongo Spring数据。你可以这样做:

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());
    }

}

}
我知道密码了。函数的作用是。它工作得很好。:) “query”是存储mongodb查询的字符串

 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);
           }
    }
我知道密码了。函数的作用是。它工作得很好。:) “query”是存储mongodb查询的字符串

 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);
           }
    }

你知道有一个事实吗?是的,我知道。但是没有别的办法吗?就像我写的代码一样。使用终端命令。这样我就可以使用相同的查询了。为了开发人员的方便,您将牺牲大量的性能。您知道这样一个事实吗?是的,我知道。但是没有别的办法吗?就像我写的代码一样。使用终端命令。这样我就可以使用相同的查询了。为了方便开发人员,您将牺牲大量的性能。