这个问题在这里已经有了答案:HowcanIgetarandomrecordfromMongoDB?(30个答案)关闭5年前。介绍/措施我正在使用一个包含10GB记录(近300万条记录)的MongoDB数据库。每个记录(文档)都有一个名为DomainClass的字段(这是我们之前定义的11个不同类中的一个)。我想要完成的事情出于统计原因,我必须从该数据库中提取每种类型的DomainClass的100条记录,而且我不能简单地获取前100条,因为样本会有偏差。我需要在数据库中随机分配这100条记录。我尝试过的:基本上,这就是我尝试过的(在C#中)。1-计算属于某个DomainClass的记录
我正在尝试在Node中生成sessionID并将它们存储在MongoDB中。对于我的应用程序,我只想生成一个随机的6位数字(此数字用于同步两个session,因此用户可以轻松复制它)。我想生成一个不在我的MongoDB中的sessions集合中的数字。我的第一个想法可能会在99%的时间里起作用:functionGetSessionKey(cb){varkey=parseInt(Math.random()*1000000).toString();while(key.length但是生成的key不断地选择mongo中现有的key的可能性很小。或者所有key都已在使用中的可能性(我不希望发生
我有一个像这样的UserSchema,但我似乎无法生成唯一的随机activation_token。我正在使用rand-token生成。Foundhere.varUserSchema=newSchema({activation_token:{type:String,default:randToken.generate(64),},email:{type:String,unique:true,sparse:true},first_name:{type:String},last_name:{type:String}});似乎工作正常,但是当使用Mocha运行单元测试时,所有activatio
我是SailsJS框架的新手,我正在尝试编写一个小测验应用程序。每次测验,我的应用程序都会从问题集合中随机选择6个问题。SailsJS0.11、MongoDB3.6.8可以吗?我该怎么做?非常感谢 最佳答案 您可以使用skip和limit条件调用find方法。Question.count().then(count=>Question.find().limit(6).skip(parseInt(Math.random()*count))).then(questions=>questions.sort(()=>0.5-Math.ra
我正在构建一个基于任务队列的应用程序:它为多个异步连接的客户端提供一系列任务。不同之处在于,任务必须以随机顺序提供。我的问题是我现在使用的算法在计算上非常昂贵,因为它依赖于许多大型查询和从数据库传输。我有一种强烈的预感,有一种更便宜的方法可以达到相同的结果,但我不太清楚解决方案。你能想出一个聪明的办法来解决这个问题吗?这是我现在使用的(计算量大的)算法:当客户端查询新任务时...在数据库中查询“未完成”的任务将所有任务放在一个列表中打乱列表(使用random.shuffle)将第一个任务标记为“进行中”将任务参数发送给客户端完成当客户端完成任务时...6a。记录结果并将任务标记为“已完
我如何从MongoDB的集合中随机获取单个文档。如何修复代码。varMongoClient=require('mongodb').MongoClient;MongoClient.connect('mongodb://localhost:27017/test',function(err,db){if(err)throwerr;varquery={};vartotal=db.collection('cities').count();varrandom=Math.floor(Math.random()*total);db.collection('cities').find({}).skip(
我有这样的表...╔═════╦════════╦═════════════╗║id║text║parent_id║╠═════╬════════╬═════════════╣║1║test║1║║2║asd║1║║3║dsa║1║║4║fgh║4║║5║jkl║4║║6║kkk║4║║7║asas║7║╚═════╩════════╩═════════════╝如何获得随机输出:╔═════╦════════╦═════════════╗║id║text║parent_id║╠═════╬════════╬═════════════╣║4║fgh║4║║5║jkl║4║║6║kkk║
情况:一张有很多照片、分类和投票的表格。我目前正在这样做:SELECTn.nid,n.title,.......orderbyv.valuedesclimit0,5我想要的是在按选票对我的行进行排序之后获得一个随机结果集。现在,一个包含数百条记录的表为我提供了最好的5行。总是相同的5。这是相当重复的,但当然随机给出5行并不是最好的选择,因为并非所有行都有高质量的照片。有些可能不太好。我不想只是这样做:SELECTn.nid,......orderbyRAND()limit0,5我正在寻找的是这样的:SELECTn.nid,.....orderbyRAND(v.valuedesclimi
我正在努力在表格行中显示一页分类广告。我要解决的问题是以减少页面空白量的方式排列广告,同时保持随机顺序。几个无序广告的示意图:_________________________________adtexthere.|anotheradherethisadhas|(2)moretextthan|[unwantedthatad.(1)|white-space]_______________|__________________我想做的是按char_length对结果进行排序,但也将结果随机化为2组、3组或其他组。我现在的查询是:SELECT*FROMadsORDERBYCHAR_LENGT
我当前的查询看起来像那样SELECT*FROMuploadsWHEREapproved=1AND(up-down)>=3ORDERBYRAND()LIMIT10这是从数据库中随机选择10个至少有3个喜欢多于不喜欢的条目。问题是因为我在数据库中有超过40k个条目,这个查询至少需要1秒。我在谷歌上阅读了很多内容,但到目前为止还没有找到任何东西。对于我的情况,您有什么替代方案可以推荐吗? 最佳答案 如果您要将所有匹配的记录加载到内存中,并且它们不是太多,那么最简单的答案就是在您的SQL中删除orderby,然后对它们进行排序随机在您的应用