Я выполняю операцию агрегации с использованием драйвера java mongodb и следовал примеру из документации (вставленной ниже). В соответствии с этим поле _id
должно быть скрыто. Однако, по моему опыту работы с моим собственным кодом, а также с выводом этого примера, поле _id
не скрывается даже при установке значения проекции на 0 (оно работает из оболочки mongo). Кто-нибудь знает, является ли это ошибкой в java-драйвере mongodb? Или я что-то делаю не так?
// 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 );