2014-12-19 63 views
1

我正在寻找一种方法来从MongoDB中随机选择一个文档,然后从任何其他随机选择中排除它。是否可以一次选择一个随机文档,然后再不选择?

我对随机选择的.skip(someRandomNumber).next()方法很熟悉。但如何排除它进一步的选择。

该场景是必须随机选择/加载但不能多次加载的情况的集合。

任何想法?

+0

在我的头顶,而iirc'findOne'总是只在连接中返回相同的文档。 – 2014-12-19 06:59:40

回答

1

你见过The Random Attribute的方法吗?这个想法是为每个文档分配“随机属性”。然后在应用程序中,您可以生成随机数,记住它(以后不要使用它),并从集合中选择随机文档。

另一种方法是从集合中选择随机文档,然后将该文档标记为已选(未在未来选中)。所以,在查询时明确地过滤掉以前已经选择的文档。

+0

我还没有听说过第一种方法。但非常整齐。 – 2015-01-08 19:06:03