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

$minN(表达式操作符)

$minN

返回数组中 n 个最小值。

注意

消歧

本页介绍 $minN 在作为表达式使用时的情况,它将返回数组中的 n 个最小值。

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

{ $minN: { n: <expression>, input: <expression> } }
字段
说明

n

解析为正整数的表达式。整数指定 $minN 返回的数组元素个数。

input

解析为数组的表达式,从中返回最小 n 个元素。

  • 不能指定小于 1 的 n 值。

  • $minN 筛选出在 input 数组中找到的 null 值。

  • 如果指定的 n 大于或等于 input 数组中的元素数,$minN 返回 input 数组中的所有元素。

  • 如果 input 解析为非数组值,则表达式将产生错误。

  • 如果 input 包含不同类型的元素,跨类型比较将遵循 BSON 比较顺序。

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

以下示例使用 $minN 操作符返回每部电影按字母顺序排列的前两个类型。结果将在由 $addFields 创建的新字段 firstAlphabeticalGenres 中返回。

db.movies.aggregate( [
{ $match: { $expr: { $gte: [ { $size: "$genres" }, 3 ] } } },
{
$addFields: {
firstAlphabeticalGenres: { $minN: { n: 2, input: "$genres" } }
}
},
{
$project: {
_id: 0,
title: 1,
genres: 1,
firstAlphabeticalGenres: 1
}
},
{ $limit: 5 }
] )

前面的管道:

  • 使用 $match 过滤器至少有三种类型的电影。

  • 使用 $addFields 创建 firstAlphabeticalGenres 字段。$minN 与 n: 2 会返回来自 genres 数组的前两个按字母顺序排列的值。

  • 使用 $project 仅返回 title、genres和firstAlphabeticalGenres字段。

  • 使用 $limit 返回五个文档,以提高可读性。

给本页内容打分