Я следую за агрегацией mongo db в java, и пример показывает нижеприведенный конвейер. То, что я пытаюсь сделать, это добавить дополнительное поле с именем department
, которое содержит значение отдела (так что в этом случае оно будет иметь то же значение, что и поле _id
. Я попытался добавить другое поле в groupFields
с new BasicDBObject("department",$department)
, но это didn ' . т работаmongodb (java), включая поле id по имени
// create our pipeline operations, first with the $match
DBObject match = new BasicDBObject("$match", new BasicDBObject("type", "airfare"));
// build the $projection operation
DBObject fields = new BasicDBObject("department", 1);
fields.put("amount", 1);
fields.put("_id", 0);
DBObject project = new BasicDBObject("$project", fields);
// Now the $group operation
DBObject groupFields = new BasicDBObject("_id", "$department");
groupFields.put("average", new BasicDBObject("$avg", "$amount"));
DBObject group = new BasicDBObject("$group", groupFields);
// run aggregation
AggregationOutput output = collection.aggregate(match, project, group);
с выходом
{"_id" : "Human Resources" , "average" : 74.91735537190083} ,
{"_id" : "Sales" , "average" : 72.30275229357798} ,
{"_id" : "Engineering" , "average" : 74.1}
Привет, это сообщение было очень полезно, я немного в отчаянии, чтобы понять, как разбирать выходные результаты? В этом случае, как вы сделали результат в POJO? Если я использую какое-то время (... iterator.hasnext()), он вводит бесконечный цикл ... – nuvio
Почему бы вам не опубликовать свой код в другом вопросе, и мы можем помочь найти проблему –
К счастью, я решил проблему с a 'для каждого' цикла ('while' имеет некоторую проблему), большое спасибо за предложение. – nuvio