对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

$addToSet(累加器操作符)

$addToSet

返回群组中文档的唯一 表达式 值数组。数组中元素的顺序未指定。

$addToSet 可在以下阶段使用:

注意

消歧

本页介绍了 $addToSet 用作 累加器 时的情况。累加器对一组输入文档返回单个聚合值,如总和、最大值或最小值。

您还可以在这些其他上下文中使用 $addToSet:

{ $addToSet: <expression> }

有关表达式的更多信息,请参阅表达式。

如果表达式的值是一个数组,$addToSet 会将整个数组作为一个元素附加。

如果该表达式的值为一个文档,则当数组中的另一文档与要添加的文档完全匹配时,MongoDB 便确定该文档为重复文档。具体而言,现有文档包含顺序完全相同的相同字段和值。

本页上的示例使用来自 sample_mflix 数据集的数据。有关如何将此数据集加载到您的自管理 MongoDB 部署中的详细信息,请参阅 加载示例数据集。如果您对示例数据库进行了任何修改,您可能需要删除并重新创建数据库,才能运行此页面上的示例。

以下操作按主管分组电影,并使用 $addToSet 累加器收集每位主管所涉及的独特类型。为了提高可读性,管道将结果限制为按字母顺序排列的前五位主管。

db.movies.aggregate( [
{
$unwind: "$directors"
},
{
$unwind: "$genres"
},
{
$group: {
_id: "$directors",
genres: { $addToSet: "$genres" }
}
},
{
$sort: { _id: 1 }
},
{
$limit: 5
}
] )

此管道返回以下结果:

[
{ _id: 'A. Dean Bell', genres: [ 'Crime', 'Drama' ] },
{ _id: 'A. Karunakaran', genres: [ 'Romance' ] },
{ _id: 'A. Vanichkin', genres: [ 'Animation', 'Fantasy' ] },
{ _id: 'A.J. Edwards', genres: [ 'Biography', 'Drama', 'History' ] },
{
_id: 'A.R. Murugadoss',
genres: [ 'Drama', 'Sci-Fi', 'Thriller', 'Action', 'Mystery' ]
}
]
给本页内容打分