TODO:从数据库中随机抽取一条记录
2016-11-24 21:22
267 查看
TODO:从数据库中随机抽取一条记录
1.最直接,最粗暴的方法先计算记录的总数,然后选择一个从0到记录总数之间的随机数n,利用skip跳过n条记录,这是效率低下的的方法,首先的记录总数,在用skip会很耗时间;2.那么有什么办法能够提供效率呢,方法就是给每条记录添加一个0-1的随机因子random。“random” : 0.5127909016609585想要在记录中查找一个随机记录,只要计算出一个随机数并作为查询条件就好了Result = db.getCollection(‘qq’).findOne({“random”:{“$gt”:random}})如果出现查询不到数据,那是因为随机数比记录中存的随机值都要大,就没有结果返回了,那就换个方向查询了,就可以查询到想要的数据了Result = db.getCollection(‘qq’).findOne({“random”:{“$lt”:random}});3.更多复杂的查询,可以把随机因子包含在索引里面。这样,随机获取一条记录,我们也可以随机获取n条记录,做相应的业务环境使用wxgzh:ludong86
1.最直接,最粗暴的方法先计算记录的总数,然后选择一个从0到记录总数之间的随机数n,利用skip跳过n条记录,这是效率低下的的方法,首先的记录总数,在用skip会很耗时间;2.那么有什么办法能够提供效率呢,方法就是给每条记录添加一个0-1的随机因子random。“random” : 0.5127909016609585想要在记录中查找一个随机记录,只要计算出一个随机数并作为查询条件就好了Result = db.getCollection(‘qq’).findOne({“random”:{“$gt”:random}})如果出现查询不到数据,那是因为随机数比记录中存的随机值都要大,就没有结果返回了,那就换个方向查询了,就可以查询到想要的数据了Result = db.getCollection(‘qq’).findOne({“random”:{“$lt”:random}});3.更多复杂的查询,可以把随机因子包含在索引里面。这样,随机获取一条记录,我们也可以随机获取n条记录,做相应的业务环境使用wxgzh:ludong86
相关文章推荐
- TODO:从数据库中随机抽取一条记录
- TODO:从数据库中随机抽取一条记录
- 从数据库中随机抽取一条记录
- 从数据库中随机抽取一条记录的SQL语句
- 从数据库中随机抽取一条记录的SQL语句
- 从数据库中随机抽取一条记录的方法
- 随机查询一条数据库记录的SQL
- 从数据库中随机抽取记录
- 数据库中随机查询一条记录的SQL
- 从数据库中随机抽取记录
- Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序 原理and实现
- SQL语句随机抽取一条记录
- 数据库中随机查询一条记录的SQL
- SQL语句 - 随机抽取一条记录
- 两条从数据库中随机抽取记录的语句
- sql随机抽取数据库记录
- 怎么从数据库中随机拿一条或几条记录?
- sql随机抽取数据库记录
- ORACLE随机获取数据库表的一条记录
- 数据库中随机查询一条记录的SQL语句