在实际应用场景中,几乎都会有随机获取数据记录的需求。而这个需求在 Mongodb 却不是很好实现,就目前而言,大致上有三种解决方案: 先计算出一个从 0 到记录总数之间的随机数,然后采用 skip(yourRandomNumber) 方法。 为每一条记录增设 random 字段,插入
在实际应用场景中,几乎都会有随机获取数据记录的需求。而这个需求在 Mongodb 却不是很好实现,就目前而言,大致上有三种解决方案:
- 先计算出一个从
0
到记录总数之间的随机数,然后采用skip(yourRandomNumber)
方法。
- 为每一条记录增设
random
字段,插入数据时赋值为Math.random()
,查询时采用$gte
和$lte
。
- 借助 Mongodb 对地理空间索引(
geospatial indexes
)的支持,从而可以在第二种方法的基础上来实现随机记录的获取。
因为 Mongodb 是不建议使用skip
方法的,所以这里就略去第一种方法吧。
方法二
方法三
更多关于 Mongodb 地理空间索引资料,请参见这里。
目前这几种方案似乎都不是很理想,但是也没有其他办法了,所以广大程序员们就相约到 Mongodb 的官方 jira 提了相应的需求,但是目前仍然没有任何的响应。可以参见这里,围观一下。
原文地址:Mongodb中随机的查询文档记录, 感谢原作者分享。