在MongoDB中,要刪除特定分組的文檔,可以使用$group
操作符結合$match
操作符和$unset
操作符來實現。
以下是一個示例:
db.collection.aggregate([
{
$group: {
_id: "$field_to_group_by",
documents: {
$push: "$$ROOT"
}
}
},
{
$match: {
_id: "group_value_to_delete"
}
},
{
$unwind: "$documents"
},
{
$replaceRoot: {
newRoot: "$documents"
}
},
{
$match: {
_id: {
$ne: "document_to_delete"
}
}
}
])
上述示例中,首先使用$group
操作符根據要分組的字段進行分組,并將每個分組的文檔存儲到一個數組中。然后使用$match
操作符選擇要刪除的特定分組。接下來,使用$unwind
操作符展開數組中的文檔。然后使用$replaceRoot
操作符將展開的文檔作為新的根文檔。最后,使用$match
操作符排除要刪除的特定文檔。
請注意,上述示例僅適用于刪除特定分組的文檔,而不是刪除整個分組。如果要刪除整個分組,請使用$group
操作符結合$match
操作符和$group
操作符來實現。