Skip to content

Instantly share code, notes, and snippets.

@csanz
Created August 8, 2011 19:33
Show Gist options
  • Select an option

  • Save csanz/1132523 to your computer and use it in GitHub Desktop.

Select an option

Save csanz/1132523 to your computer and use it in GitHub Desktop.
Mongodb Randomizer Script
db.users.find().forEach(function(user) {
db.users.update({_id: user._id}, { $set: { random: Math.random() }});
});
// Runs in less than 1 sec for 2k records
db.users.ensureIndex({random:1});
/*
This also runs in less than 1 sec for 2k records
db.users.find({},{screen_name:1}).limit(5).sort({random: 1})
{ "_id" : ObjectId("4e1aa2377dc6f70100000af3"), "screen_name" : "sadatrahman" }
{ "_id" : ObjectId("4e0ffce49577900100000210"), "screen_name" : "chrisdickinson" }
{ "_id" : ObjectId("4e1a95487dc6f701000005eb"), "screen_name" : "jspepper" }
{ "_id" : ObjectId("4e13934156a8ef01000026de"), "screen_name" : "mcavage" }
{ "_id" : ObjectId("4e174b9387833b01000027f6"), "screen_name" : "DariuszDZW" }
(run the update script above again)
db.users.find({},{screen_name:1}).limit(5).sort({random: 1})
{ "_id" : ObjectId("4e14e3284977db01000002ec"), "screen_name" : "tkousky" }
{ "_id" : ObjectId("4e10144a9577900100000dbe"), "screen_name" : "nico" }
{ "_id" : ObjectId("4e1b1a6e6fed2f0100000bb1"), "screen_name" : "snarkie" }
{ "_id" : ObjectId("4e1aa69e7dc6f70100000ccd"), "screen_name" : "tonyarnold" }
{ "_id" : ObjectId("4e1a977a7dc6f70100000657"), "screen_name" : "jamie" }
*/
@csanz
Copy link
Author

csanz commented Aug 8, 2011

Hells yes!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment