【发布时间】:2016-08-09 23:57:29
【问题描述】:
我正在使用 $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)
通过手动定义种子,我确保每次执行此操作时结果都相同。
【问题讨论】:
-
不,没有。否则它不会是一个“随机样本”。如果您一直想要一个相同事物的列表,则存储选定的
_id值并为这些值提供$in查询。 -
@Codious-JR 你找到解决问题的方法了吗?我还没有找到任何合理的解决方案来解决我的问题。
-
@NeilLunn:有许多用于播种聚合操作的用例,特别是用于可重复性(例如测试目的、机器学习等)
-
@guhur 有没有我可以查找这些用例的术语?我尝试了谷歌搜索(例如 "mongo aggregate "$sample", random seed" ),但我找不到任何东西。
-
@XavierGuihot 我删除了标签
标签: mongodb aggregation-framework