本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
$sample
Amazon DocumentDB 中的$sample聚合阶段用于从集合中随机选择指定数量的文档。这对于诸如数据分析、测试和生成样本以供进一步处理之类的任务非常有用。
参数
-
size:要随机选择的文档数量。
示例(MongoDB 外壳)
以下示例演示如何使用$sample舞台从temp集合中随机选择两个文档。
创建示例文档
db.temp.insertMany([ { "_id": 1, "temperature": 97.1, "humidity": 0.60, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 2, "temperature": 98.2, "humidity": 0.59, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 3, "temperature": 96.8, "humidity": 0.61, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 4, "temperature": 97.9, "humidity": 0.61, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 5, "temperature": 97.5, "humidity": 0.60, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 6, "temperature": 98.0, "humidity": 0.59, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 7, "temperature": 97.2, "humidity": 0.60, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 8, "temperature": 98.1, "humidity": 0.59, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 9, "temperature": 96.9, "humidity": 0.62, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 10, "temperature": 97.7, "humidity": 0.60, "timestamp": ISODate("2019-03-21T21:17:22.425Z") } ]);
查询示例
db.temp.aggregate([ { $sample: { size: 2 } } ])
输出
{ "_id" : 4, "temperature" : 97.9, "humidity" : 0.61, "timestamp" : ISODate("2019-03-21T21:17:22.425Z") }
{ "_id" : 9, "temperature" : 96.9, "humidity" : 0.62, "timestamp" : ISODate("2019-03-21T21:17:22.425Z") }
结果显示,10份文档中有2份是随机抽样的。现在,您可以使用这些文档来确定平均值或进行 min/max 计算。
代码示例
要查看使用该$sample命令的代码示例,请选择要使用的语言的选项卡: