How to create huge random document in MongoDB
Here are some functions that will help you to create a random string(name) and random date since 1950 untill 2000 and insert it into mongodb.
function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min;}function getRandomDate() { // aprox nr of days since 1970 untill 2000: 30years * 365 days var nr_days1 = 30*365; // aprox nr of days since 1950 untill 1970: 20years * 365 days var nr_days2 = -20*365; // milliseconds in one day var one_day=1000*60*60*24 // get a random number of days passed between 1950 and 2000 var days = getRandomInt(nr_days2, nr_days1); return new Date(days*one_day)}for (var i = 1; i <= 10000; i++) { db.test.insert( { name : "name"+i, birthday: getRandomDate() } ) }
I have try mgeneratejs
, very easy to use, mgeneratejs
here is sample command, mgeneratejs
print data to stdout
, then use mongoimport
import these data into mongod
:
mongodb-osx-x86_64-4.0.1 $ mgeneratejs '{"name": "$name", "age": "$age", "emails": {"$array": {"of": "$email", "number": 3}}}' -n 5 | mongoimport --uri mongodb://localhost:27017/test --collection user --mode insert2018-08-09T16:19:13.295+0800 connected to: localhost2018-08-09T16:19:14.544+0800 imported 5 documents
Best way will be read off docs about random generate in mongodb.https://docs.mongodb.com/v2.6/tutorial/generate-test-data/Also you could use special service for generate random data.For example:https://www.mockaroo.com/