0
首先,讓我說我是一個新手,因此不可能像問題一樣清楚地問這個問題。這裏去如何指定鍵值對
從java我正在調用一個函數FindName(int,string)(下面的代碼片段),我得到DBObject ref語句的JSONParser錯誤。如果硬編碼值對,代碼工作正常,但目標是調用例程傳遞不同的值並獲得正確的結果。
傳遞的值是有效的,我甚至println來驗證值。
問題似乎是,即使值是有效的int和字符串,mongodb似乎不允許您指定在鍵值對中傳遞給此函數的值的名稱。
因此,我猜你需要將傳入的日期,名稱值轉換爲鍵值對可接受的格式。問題是如何做到這一點。
靜態字符串FindName(INT日期,字符串名稱)
MongoClient mongoClient;
try {
mongoClient = new MongoClient("xxx.xx.xx.xxx",27017);
}
catch (UnknownHostException e)
{
e.printStackTrace();
return name;
}
DB db = mongoClient.getDB("tpfdf");
DBCollection PNR = db.getCollection("PNR");
DBObject ref = (DBObject) JSON.parse("{PnrByDateFlightCustom: {date: date), pname: name'}}");
at com.mongodb.util.JSONParser.parse(JSON.java:208)
at com.mongodb.util.JSONParser.parseObject(JSON.java:241)
at com.mongodb.util.JSONParser.parse(JSON.java:205)
at com.mongodb.util.JSONParser.parseObject(JSON.java:241)
at com.mongodb.util.JSONParser.parse(JSON.java:205)
at com.mongodb.util.JSONParser.parse(JSON.java:155)
at com.mongodb.util.JSON.parse(JSON.java:93)
at com.mongodb.util.JSON.parse(JSON.java:74)
at MongoDB5.locatePassengerName(MongoDB5.java:38)
at MongoDB5.main(MongoDB5.java:11)
這看起來不正確:{date:date)。嘗試{date:date} – duffymo
謝謝,但是當我發佈複製的代碼時,這是一個手指檢查,但要清楚,錯誤仍然存在... {PnrByDateFlightCustom:{date:date,name:name }} ^ at com.mongodb.util.JSONParser.parse(JSON.java:208) at com.mongodb.util.JSONParser.parseObject(JSON.java:241) –