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

转载于:https://blog.51cto.com/onetodo/1876375

TODO:从数据库中随机抽取一条记录相关推荐

  1. laravel mysql rand_laravel如何从mysql数据库中随机抽取n条数据(高性能) - Laravel学习网...

    laravel如何高性能地从mysql数据库中随机获取n条数据,有时候我们常常会需要从数据库随机获取数据,比如:给工作人员随机分配10个订单,随机从数据库中随机抽查100个用户:这样我们就需要随机从数 ...

  2. Oracle中随机抽取N条记录,使用Oracle分析函数随机抽取N条记录

    模拟一个歌曲表,有歌曲ID和作者ID,并且初始化一些数据 create table music( music_id int primary key, userid int ); 模拟一个歌曲表,有歌曲 ...

  3. php 数组 随机选择_php中通过数组进行高效随机抽取指定条记录的算法

    php使用数组array_rand()函数进行高效随机抽取指定条数的记录,可以随机抽取数据库中的记录,适合进行随机展示和抽奖程序. 该算法主要是利用php的array_rand()函数,下面看一下ar ...

  4. 检索数据_12_从表中随机返回N条记录

    从表中随机返回N条记录 需求描述 需求:从雇员表emp里随机查询5条雇员的名称和工资信息. 解决方法:使用数据库里内置的限制行数函数结合随机函数来解决. 注: 数据库数据集SQL脚本详见如下链接地址 ...

  5. 不同数据库中查询前几条记录的用法(SQL Server/Oracle/Postgresql)

    SQL在不同数据库中查询前几条记录的用法分类 1. orACLE Select * FROM TABLE1 Where ROWNUM<=N 2. INFORMIX Select FIRST N ...

  6. mysql 获取一条数据_MySQL数据库中随机获取一条或多条记录

    在开发过程中遇到了一个问题,使用MySQL数据库,用SQL语句在表中随机获取一条或多条数据,看似简单,但是往深层研究的话还是很有深度的,查了好多资料,接下来给大家分享一下: 1. 随机获取单条数据 S ...

  7. 查询最近一千条数据mysql_保留mysql数据库中的最新1000条记录

    mysql_connect("localhost","root","root"); mysql_select_db("test&q ...

  8. Java SSH Hibernate通过代码实现从数据库中随机取出指定条数的随机数据

    2019独角兽企业重金招聘Python工程师标准>>> /*** 根据提供的数量获取随机的问题列表* @param totel* @return*/public List getRa ...

  9. 从数据库表中随机获取N条记录的SQL语句

    Oracle:        select * from (select * from tableName order by dbms_random.value) where rownum < ...

最新文章

  1. 神经网络输出大小(卷积层及池化层)
  2. 【Java】 5.6 类的继承
  3. Day3-----delayPrompt
  4. ASCII表完整版(包含16进制对应表)
  5. Java 开发环境配置 win10
  6. 听力阈值计算_中耳功能分析:临床听力测试的重要手段!
  7. 最新基于adt-bundle-windows-x86的android开发环境搭建
  8. (9)Zynq UART控制器介绍
  9. JQuery学习记录——jQuery对象和DOM对象的转换
  10. 局域网电脑Sql2008 R2无法连接到localhost 解决方案
  11. input或者button type=submit,设置disabled属性后,无法提交代码到后台
  12. jQuery基础资料(三)
  13. 机器学习视频推荐-绝对的通俗易懂(线性回归,逻辑回归,朴素贝叶斯分类器,K-近邻,SVM,决策树,随机森林,XGboost,k-means聚类)
  14. 浅谈木材加工企业的电气火灾隐患及电气火灾监控系统的应用
  15. 一文了解CISP,太全了
  16. 分布式任务ijobhandle
  17. java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 2 milliseconds, 351400 nanosec
  18. 任正非:外界过分吹捧华为,导致员工惰怠,华为必须保持清醒
  19. SharePoint debug - Unable to render the data. If the problem persists, contact your web server admin
  20. 计算机技能培训心得,计算机技能培训心得感想.doc

热门文章

  1. 【Qt开发】Qt Creator在Windows上的调试器安装与配置
  2. java类的加载机制
  3. hdu 1754/zstu 3121 I Hate It(线段树)
  4. LeetCode—211. 添加与搜索单词 - 数据结构设计
  5. halcon 单通道图像转成3通道_halcon图像处理基本运算
  6. MQTT 物联网协议
  7. 全国计算机等级考试题库二级C操作题100套(第41套)
  8. bootdefault和configuration_springboot常用注解、包引入和自动配置功能解读
  9. mysql 从库 速度太慢_mysql查询速度慢的原因[整理版]
  10. 数据库:SQLServer中GUID用法介绍