0
我想用蒙戈聚集在Java中,但我不能確定$group
代碼:
在javascript中:
$group = {
'_id':null,
'money_bank':{
'$sum':{
'$cond':[{'$eq'=>{'$type':'bank'}},'$amount',0]
}
}
在java中:
BasicDBList eqList = new BasicDBList();
eqList.add("$type");
eqList.add("bank");
DBObject eqObject = BasicDBObjectBuilder.start().add("$eq", eqList).get();
BasicDBList condList = new BasicDBList();
condList.add(eqObject);
condList.add("$amount");
condList.add(0);
DBObject conObj = BasicDBObjectBuilder.start().add("$cond", condList).get();
DBObject sumObj = BasicDBObjectBuilder.start().add("$sum", conObj).get();
DBObject moneyObj = BasicDBObjectBuilder.start().add("money_bank", sumObj).get();
DBObject idObj = BasicDBObjectBuilder.start().add("_id", null).get();
BasicDBList groupList = new BasicDBList();
groupList.add(idObj);
groupList.add(moneyObj);
DBObject group = new BasicDBObject("$group", groupList);
但是,當我執行的代碼,錯誤:
"errmsg" : "exception: a group's fields must be specified in an object"
請幫我用Java。
我建議使用com.mongodb.util.JSON.parse函數,並在查詢中傳入以獲得DBObject而不會有任何痛苦:) – Sikorski
這是在執行字符串操作,它仍然會有可怕的表現。 – Trisha
@ Trisha,謝謝,但是當我使用$或$ cond運行但返回不正確的結果。請幫助我$組中的代碼:PHP代碼是:$ group = array( '_id'=> null, 'sms_card'=> array( '$ sum'=> array( '$ cond'=>數組( array( '$ or'=> array( array('$ eq'=> array('$ type','sms')), array('$ eq'=> array('$ type '''')) )),'$ amount',0) ) ) –