我正在使用Java MongoDB驱动程序执行聚合操作,并按照文档中的示例进行操作(如下所示)。根据该示例,
_id
字段应该被隐藏。然而,在我的代码以及此示例的输出中,即使将投影值设置为0,_id
字段也不会被隐藏(在Mongo Shell中可以工作)。有人知道这是否是Mongodb Java驱动程序中的缺陷吗?或者我做错了什么?// 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
投影到department
。 - Asya Kamsky{$project:{department:"$_id", average:1} }
。 - Asya Kamsky