MongoDB $sample 运算符介绍

$sample 运算符是 MongoDB 中的一个聚合管道运算符,它的作用是随机抽取指定数量的文档作为输出结果。该运算符可用于随机展示一些文档,或者用于测试目的。

语法

$sample 运算符的语法如下:

{
  $sample: {
    size: <positive integer>
  }
}

其中,size 是必需的,它指定要随机抽取的文档数量,必须是一个正整数。

使用场景

$sample 运算符主要用于以下场景:

  • 随机获取一些文档进行展示
  • 对数据集进行随机抽样
  • 测试目的,以便在生产环境中模拟随机数据

示例

以下是使用 $sample 运算符的示例。

假设有一个 users 集合,包含以下文档:

{ "_id": 1, "name": "Alice", "age": 28 }
{ "_id": 2, "name": "Bob", "age": 35 }
{ "_id": 3, "name": "Charlie", "age": 42 }
{ "_id": 4, "name": "David", "age": 19 }
{ "_id": 5, "name": "Eva", "age": 25 }

以下聚合管道可以随机抽取 2 个文档:

db.users.aggregate([{ $sample: { size: 2 } }])

输出结果可能是以下文档之一,但不一定是这些文档:

{ "_id": 2, "name": "Bob", "age": 35 }
{ "_id": 4, "name": "David", "age": 19 }

结论

$sample 运算符是 MongoDB 中用于随机抽取指定数量的文档的一个非常有用的聚合管道运算符。它可以在多种场景下使用,例如展示随机文档、随机抽样和测试。注意,该运算符对于大型数据集可能会产生较大的性能开销,因此需要根据具体情况进行权衡。