TODO:从数据库中随机抽取一条记录

TODO:从数据库中随机抽取一条记录

目前成都创新互联已为成百上千的企业提供了网站建设、域名、网站空间网站托管运营、企业网站设计、阜城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

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

TODO:从数据库中随机抽取一条记录


文章标题:TODO:从数据库中随机抽取一条记录
当前地址:http://scjbc.cn/article/gcijps.html

其他资讯