mongodb javascript查询

问题描述:

目前我正在使用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

我鼓励你看看mongodb java driver从Java运行查询。 Java驱动程序允许用Java直接与其mongodb数据库进行交互。因此,您可以将此代码移植到Java中,并使用Java完成,避免使用javascript或db.eval。让我知道你是否想要更多的澄清。

你也可以使用存储过程中,你可以调用从Java驱动程序使用eval()存储功能

一些细节:http://dirolf.com/2010/04/05/stored-javascript-in-mongodb-and-pymongo.html

最近,在2.4版本有一些改进的并发为javascript操作:http://docs.mongodb.org/manual/release-notes/2.4-javascript/