首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在mongodb中设置假数据以进行测试

在mongodb中设置假数据以进行测试
EN

Stack Overflow用户
提问于 2015-06-02 10:11:55
回答 5查看 9.7K关注 0票数 5

我们有一个项目,其中我们需要创建一个假的数据库和假数据的功能测试。最初,我们从一个脚本开始,该脚本使用mongoose创建实体,初始化它们并保存它们。

代码语言:javascript
运行
复制
var StudentA = new Student();
StudentA.name = "Bob";
StudentA.surname = "Marley";
StudentA.save();

随着应用程序的发展和文档之间关系的增加,这个脚本已经变得一塌糊涂。现在,它对我们投资于应用程序开发的时间构成了瓶颈。

问题是,有什么更好的方法吗?例如,一个以更结构化的方式用数据填充数据库的库?或者我们应该像csv文件一样解析一个文件,然后将它推送到mongo?

问题在于mongodb,但它可以推广到任何需要填充假数据的非SQL数据库中。(对于RDBMS来说,使用类似SQL的语法更简单)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-06-02 10:24:49

您可以尝试编写json文件而不是代码,并使用mongoimport重新创建数据库。这比数公里的非常冗长和重复的代码更容易维护。

票数 7
EN

Stack Overflow用户

发布于 2015-11-19 07:19:06

我同意上述解决方案,认为最好的办法是:

  1. 使用库工具生成假信息。
  2. 将假信息转换成json文件。
  3. 使用mongoimport将其上传到mongo。

有一些库允许您免费生成假数据,比如Faker.js (如果您熟悉node.js和js ),或者您可以在这里使用免费java版本的Faker:https://github.com/blocoio/faker

我还在这里找到了一个付费解决方案:https://www.mockaroo.com/,但不知道为什么有人会为此付费,因为生成假数据相当容易--下面是一步一步的指南。

将faker java库和json编写器导入到项目中(我正在使用gradle,下面是gradle代码):

代码语言:javascript
运行
复制
    repositories {
        maven { url 'https://jitpack.io' }
    }
dependencies {
    compile 'com.github.blocoio:faker:1.0.1'
    compile 'com.googlecode.json-simple:json-simple:1.1.1'
}

使用下面的java代码生成任意数量的假对象,这里我使用一个循环生成3个对象,并将其保存到一个json.file中。

代码语言:javascript
运行
复制
public class FakerTest {
    static FileWriter file;
    public static void main(String[] args) {
        try {
            file = new FileWriter("c:\\<Your Location>\\test.json"); //try opening the file
            for (int i = 0; i < 3; i ++) {
                Faker faker = new Faker();
                JSONObject obj = new JSONObject();
                obj.put("Name", faker.name.firstName());
                obj.put("address",faker.address.streetAddress());
                obj.put("email",faker.internet.email());
                file.write(obj.toJSONString());

            }
            file.flush();
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

json文件的结果:

{“地址”:“790墨菲维斯塔”,"email":"willa@schmittjenkinsandabernathy.net",“名称”:“"email":"martin_carter@ryanbartellandeffertz.com",”}{“地址”:“7706 Larkin River",”email“:”martin_carter@ryanbartellandeffertz.com“,”Name“:”Braeden“}{”地址“:”1893年Jamarcus Rest","email":"cassidy_kris@ziemeankundingandblick.com","Name":"Marlee"}

现在,用mongoimport上传它。

faker库将允许您生成许多字段,请参阅:

https://github.com/stympy/faker/blob/master/README.md

票数 4
EN

Stack Overflow用户

发布于 2015-06-02 11:12:33

下载这个由MongoDB提供的json文件。

您可以使用以下方法对其进行mongoimport

代码语言:javascript
运行
复制
mongoimport --db testDB --collection testCollection --file test.json

有关Mongoimport的更多详细信息可以找到这里

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30593185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档