在MongoDB中,可以使用$group
階段和$project
階段進行去重。假設我們有一個名為myCollection
的集合,其中有一個名為fieldToDistinct
的字段,我們希望對其進行去重查詢。以下是使用聚合管道查詢進行去重的步驟:
$group
階段根據fieldToDistinct
字段對文檔進行分組。$project
階段重新構建輸出文檔,只包含所需的字段。以下是一個示例查詢:
db.myCollection.aggregate([
{
$group: {
_id: "$fieldToDistinct",
// 如果需要保留其他字段,可以將它們添加到_id字段中,例如:
// _id: { field1: "$field1", field2: "$field2" },
// 或者,如果您只需要保留一個特定字段,可以將其添加到_id字段中,例如:
// _id: "$fieldToDistinct"
}
},
{
$project: {
_id: 0, // 如果不需要保留_id字段,可以將其設置為0
fieldToDistinct: "$_id", // 將_id字段的值賦給新的fieldToDistinct字段
// 如果需要保留其他字段,可以將它們添加到輸出文檔中,例如:
// field1: 1,
// field2: 1
}
}
])
這個查詢將返回一個結果集,其中fieldToDistinct
字段的值是唯一的。如果需要保留其他字段,可以在$group
和$project
階段中相應地修改字段表達式。