gpt4 book ai didi

java - 从 java 程序运行我的 mongodb 命令

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:40 24 4
gpt4 key购买 nike

如何从 java 代码运行多个 mongodb 命令。当我运行 java 程序时,我需要 mongodb 命令在后台执行。该程序抛出一些异常“线程“主”java.io.IOException中的异常:无法运行程序“db.createCollection(“employ”)”:错误= 2,在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();
}
}

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

最佳答案

我得到了代码。 db.eval() 函数符合我的目的。它工作得很好。 :)“查询”是存储 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);
}
}

关于java - 从 java 程序运行我的 mongodb 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35567277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com