$sample(聚合)
定义
$sample
版本 3.2 中的新增功能。
从输入文档中随机选择指定数量的文档。
$sample
阶段采用以下语法:{ $sample: { size: <positive integer N> } } N
是随机选择的文档数量。
行为
如果以下所有条件都成立,则 $sample
将使用伪随机游标来选择 N
文档:
$sample
是管道的第一个阶段。N
少于集合中文档总数的 5%。该集合包含 100 多个文档。
如果前面有任何条件是错误的,$sample
:
例子
本部分展示了使用以下 users
集合的聚合管道示例:
db.users.insertMany( [ { _id : 1, name : "dave123", q1 : true, q2 : true }, { _id : 2, name : "dave2", q1 : false, q2 : false }, { _id : 3, name : "ahn", q1 : true, q2 : true }, { _id : 4, name : "li", q1 : true, q2 : false }, { _id : 5, name : "annT", q1 : false, q2 : true }, { _id : 6, name : "li", q1 : true, q2 : true }, { _id : 7, name : "ty", q1 : false, q2 : true } ] )
以下聚合操作从集合中随机选择 3
个文档:
db.users.aggregate( [ { $sample: { size: 3 } } ] )
此操作会返回三个随机文档。