2016-11-03 49 views
1

我是MongoDB的新手。我試圖創建一個包含10,000個數據的數據庫。數據將包含「用戶名」和「生日」。如何在MongoDB中創建龐大的隨機文檔

我想用隨機的用戶名和生日來創建10,000個數據。我們有創建這種數據庫的最快方法嗎?

非常感謝您的幫助!

+0

做一個程序,它是 – Sammaye

回答

0

這裏有一些函數將幫助你創建一個隨機的字符串(名稱)和隨機日期自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() 
    } 
) 
} 
+0

謝謝你的幫助。看起來這是一個體面的功能。但是,我仍然對「名稱」部分感到困惑。如果我想創建一個字符串列表,並且它的名字將由這些字符串生成,它可能比「name1,name2,name3 ....」更令人愉快。 @Sergiu Zaharie –

+0

你可以生成贖金字符串,看看http://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript – sergiuz

0

最好的方法將讀取有關在mongodb中隨機生成的文檔。 https://docs.mongodb.com/v2.6/tutorial/generate-test-data/ 你也可以使用特殊服務來生成隨機數據。 例如: https://www.mockaroo.com/

+0

太謝謝你了。這對我很有用。 :) @Rider_BY。我們是否能夠創建一個功能來做這件事?如果我們能夠做到這一點,我們是否還需要一個一個地插入它的名字和生日? –

0

我創建了一個開源工具來生成隨機BSON文檔並將它們插入到Mongodb中。它支持所有的BSON types(ObjectId,ISODate,二進制數據等)
這些文檔是根據配置文件生成的,所以你可以指定你想要的字段及其類型。

它可以在這裏找到:github.com/feliixx/mgodatagen