我正在使用rails种子文件,它正在生成属性设置为随机值的用户。
只需创建一千个用户即可。说我想创建10,000或100,000。这需要一整晚才能填满。
有没有办法做这种事情?
答案 0 :(得分:2)
插入10k条目几乎不需要几秒钟。 您可以尝试使用mongo shell插入。以下是一个可以根据您的要求修改的小代码。
generate_random_load(50, 'test3', ['_id','user'], 4)
Mongo > db.test3.find()
{ "_id" : "uNOK", "user" : "RlZS" }
{ "_id" : "tWHy", "user" : "xzGl" }
{ "_id" : "XUwH", "user" : "vySE" }
{ "_id" : "T8k0", "user" : "JMM2" }
{ "_id" : "H6R4", "user" : "HdZF" }
.....
function generate_random_load(count, collection_name, array_keys, key_size) {
for (var i = 0; i < count; i++) {
var document = {};
for (var j in array_keys) {
document[array_keys[j]] = random_string(key_size);
}
getDB("test").getCollection(collection_name).insert(document);
}
}
function random_string(len, charSet) {
charSet = charSet ||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var randomString = "";
for (var i = 0; i < len; i++) {
var randomPoz = Math.floor(Math.random() * charSet.length);
randomString += charSet.substring(randomPoz, randomPoz + 1);
}
return randomString;
}
function getDB(db_name) {
return db.getMongo().getDB(db_name);
}