4
我正在执行使用java mongodb驱动程序的聚合操作,并且我遵循了来自文档(粘贴在下面)的示例。据此,应隐藏_id
字段。但是,根据我自己的代码以及本示例的输出的经验,即使将投影值设置为0(它可从mongo shell运行),_id
字段也不会隐藏。有谁知道这是否是mongodb java驱动程序中的错误?或者我做错了什么?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字段,我认为在投影中将_id设置为0应该隐藏它 –
看看$ group步骤 - 它没有让_id传递给它,但是您要告诉它使用$ department作为_id(或者键)来分组。原始的_id是*不存在于结果集中。 –
没错,但我不想在结果的json中显示_id。我想按部门分组,但在输出中隐藏_id字段。 –