0

我正在使用 rails 种子文件,它正在生成属性设置为随机值的用户。

简单地创建一千个左右的用户需要很长时间。假设我想创建 10,000 或 100,000 个。这将需要一整夜的时间来填充。

有没有做这种事情的好方法?

4

1 回答 1

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);
}
于 2013-05-06T04:52:18.500 回答