手动设置MongoDB $ sample的种子

时间:2016-04-18 09:56:03

标签: mongodb aggregation-framework

我正在使用$ 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)

通过手动定义种子,我确保每次执行此操作时结果都相同。

2 个答案:

答案 0 :(得分:0)

目前尚无法实现,但是您可以通过https://feedback.mongodb.com/来请求此功能。

答案 1 :(得分:0)

我们用于解决类似问题的一种解决方法是在 $out 之后使用 $sample 创建“快照”集合。然后,我们处理“快照”集合,以执行可重现行为的实验。

我们获得的另一个优势是我们可以对“快照”集合执行索引,以根据需要加快实验速度。