如何在MongoDB中创建庞大的随机文档

时间:2016-11-03 10:43:57

标签: mongodb random database

我是MongoDB的新手。我正在尝试创建一个包含10,000个数据的数据库。数据将包含“用户名”和“生日”。

我想用随机用户名和生日创建10,000个数据。我们有最快的方法来创建这种数据库吗?

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:2)

以下是一些函数可以帮助您创建自1950年以来的随机字符串(名称)和随机日期,直到2000年并将其插入到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() 
    } 
  ) 
}

答案 1 :(得分:2)

我尝试了mgeneratejs,非常易于使用,mgeneratejs

这是示例命令,mgeneratejs将数据打印到stdout,然后使用mongoimport将这些数据导入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 insert
2018-08-09T16:19:13.295+0800    connected to: localhost
2018-08-09T16:19:14.544+0800    imported 5 documents

答案 2 :(得分:1)

最好的方法是阅读关于mongodb中随机生成的文档。 https://docs.mongodb.com/v2.6/tutorial/generate-test-data/ 您也可以使用特殊服务生成随机数据。 例如: https://www.mockaroo.com/