我正在寻找一种方法来从MongoDB中随机选择一个文档,然后从任何其他随机选择中排除它。是否可以一次选择一个随机文档,然后再不选择?
我对随机选择的.skip(someRandomNumber).next()方法很熟悉。但如何排除它进一步的选择。
该场景是必须随机选择/加载但不能多次加载的情况的集合。
任何想法?
我正在寻找一种方法来从MongoDB中随机选择一个文档,然后从任何其他随机选择中排除它。是否可以一次选择一个随机文档,然后再不选择?
我对随机选择的.skip(someRandomNumber).next()方法很熟悉。但如何排除它进一步的选择。
该场景是必须随机选择/加载但不能多次加载的情况的集合。
任何想法?
你见过The Random Attribute的方法吗?这个想法是为每个文档分配“随机属性”。然后在应用程序中,您可以生成随机数,记住它(以后不要使用它),并从集合中选择随机文档。
另一种方法是从集合中选择随机文档,然后将该文档标记为已选(未在未来选中)。所以,在查询时明确地过滤掉以前已经选择的文档。
我还没有听说过第一种方法。但非常整齐。 – 2015-01-08 19:06:03
在我的头顶,而iirc'findOne'总是只在连接中返回相同的文档。 – 2014-12-19 06:59:40