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
});
答
我鼓励你看看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/
我没有使用MongoDB,但我想你可以把这个'String'放在一个'StringBuilder'中并发送到你的'db.eval()'方法。 – 2013-04-26 15:54:20