我正在使用$ sample查询进行mongo聚合。以下列方式:
db.col.aggregate([
{$match: {topic: topic}},
{$sample: {'size': 10}}
{$project: {_id: 1}}
])
我的问题是,有没有办法为采样设置'种子',这样每次运行此命令时都会得到相同的结果?
例如,在python中我会这样做:
import random
list_of_items = [...]
# set the seed to 0
random.seed(0)
# get sample
samples = random.sample(list_of_items, 10)
通过手动定义种子,我确保每次执行此操作时结果都相同。
答案 0 :(得分:0)
目前尚无法实现,但是您可以通过https://feedback.mongodb.com/来请求此功能。
答案 1 :(得分:0)
我们用于解决类似问题的一种解决方法是在 $out
之后使用 $sample
创建“快照”集合。然后,我们处理“快照”集合,以执行可重现行为的实验。
我们获得的另一个优势是我们可以对“快照”集合执行索引,以根据需要加快实验速度。