2013-04-26 68 views
0

目前我正在使用Java進行項目工作,並且需要使用Java運行JavaScript Mongo查詢。我想通過使用db.eval()可以做類似的事情。問題是我對Mongo有以下JavaScript查詢,我不知道如何將整個腳本傳遞給db.eval()方法。mongodb javascript查詢

var red = function(doc, out) { 
out.count_order++; 
out.sum_qty += doc.quantity; 
out.sum_base_price += doc.extendedprice; 
out.sum_disc_price += doc.extendedprice * (1 - doc.discount); 
out.sum_charge += doc.extendedprice * (1 - doc.discount) * (1 + doc.tax); 
out.avg_disc += doc.discount 
}; 
var avg = function(out) { 
out.avg_qty = out.sum_qty/out.count_order; 
out.avg_price = out.sum_base_price/out.count_order; 
out.avg_disc = out.avg_disc/out.count_order 
}; 
db.deals.group({ 
key : { RETURNFLAG : true, LINESTATUS : true}, 
cond : { "SHIPDATE" : {$lte: new Date(1998, 8, 1)}}, 
initial: { count_order : 0, sum_qty : 0, sum_base_price : 0, sum_disc_price : 0, 
sum_charge : 0, avg_disc : 0}, 
reduce : red, 
finalize : avg 
}); 
+0

我沒有使用MongoDB,但我想你可以把這個'String'放在一個'StringBuilder'中併發送到你的'db.eval()'方法。 – 2013-04-26 15:54:20

回答

1

我鼓勵你看看mongodb java driver從Java運行查詢。 Java驅動程序允許用Java直接與其mongodb數據庫進行交互。因此,您可以將此代碼移植到Java中,並使用Java完成,避免使用javascript或db.eval。讓我知道你是否想要更多的澄清。