在MongoDB中,要?jiǎng)h除特定分組的文檔,可以使用$group
操作符結(jié)合$match
操作符和$unset
操作符來實(shí)現(xiàn)。
以下是一個(gè)示例:
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
操作符根據(jù)要分組的字段進(jìn)行分組,并將每個(gè)分組的文檔存儲(chǔ)到一個(gè)數(shù)組中。然后使用$match
操作符選擇要?jiǎng)h除的特定分組。接下來,使用$unwind
操作符展開數(shù)組中的文檔。然后使用$replaceRoot
操作符將展開的文檔作為新的根文檔。最后,使用$match
操作符排除要?jiǎng)h除的特定文檔。
請(qǐng)注意,上述示例僅適用于刪除特定分組的文檔,而不是刪除整個(gè)分組。如果要?jiǎng)h除整個(gè)分組,請(qǐng)使用$group
操作符結(jié)合$match
操作符和$group
操作符來實(shí)現(xiàn)。