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字段。 –