扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流