我们有一个项目,我们需要创建一个假数据库和假数据进行功能测试。最初我们开始使用一个脚本,使用mongoose创建实体,初始化它们并保存它们。
var StudentA = new Student();
StudentA.name = "Bob";
StudentA.surname = "Marley";
StudentA.save();
随着应用程序的增长和文档之间的关系的增加,这个脚本已经变得非常混乱。现在,它在我们投资应用程序开发的时间方面构成了瓶颈。
问题是,有更好的方法吗?例如一个以更有条理的方式用数据填充数据库的库?或者我们应该解析像csv文件这样的文件,然后将其推送到mongo?
问题在于mongodb,但它可以推广到任何需要填充假数据的NO-SQL数据库中。 (对于RDBMS,SQL语法更简单)
答案 0 :(得分:6)
您可以尝试编写json文件而不是代码,并使用mongoimport重新创建数据库。 这比那些非常详细和重复的代码更容易维护。
答案 1 :(得分:4)
我同意上述解决方案并认为最好的方法是:
我有些库允许你免费生成假数据,比如Faker.js(如果你熟悉node.js和js)或者你可以在这里使用免费的java版Faker :https://github.com/blocoio/faker
我还在这里找到了付费解决方案:https://www.mockaroo.com/但不知道为什么有人愿意为此付费,因为生成假数据相当容易 - 这是一步一步的指南。
将faker java库和json writer导入到项目中(我使用gradle,所以这里是gradle代码):
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中。
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文件的结果:
{&#34;地址&#34;:&#34; 790墨菲 Vista的&#34;&#34;电子邮件&#34;:&#34; willa@schmittjenkinsandabernathy.net",&#34;名称&#34;:&#34; Christop&#34;} {&#34;地址&#34;:&#34; 7706 拉金 河&#34;&#34;电子邮件&#34;:&#34; martin_carter@ryanbartellandeffertz.com",&#34;名称&#34;:&#34; Braeden&#34;} {&#34;地址&#34;:&#34; 1893年 贾马克斯 其余&#34;&#34;电子邮件&#34;:&#34; cassidy_kris@ziemeankundingandblick.com",&#34;名称&#34;:&#34;马莉&#34;}
现在,使用mongoimport上传它。
faker库可以让你生成很多字段,请参考:
答案 2 :(得分:2)
Download这个json文件由MongoDB提供。
你可以mongoimport
使用:
mongoimport --db testDB --collection testCollection --file test.json
有关Mongoimport的更多详情,请访问here。
答案 3 :(得分:0)
可以在此处找到更多示例以及documents-api。请在左上角的下拉菜单中选择合适的版本。
https://docs.mongodb.com/v3.6/reference/program/mongoimport/#examples
答案 4 :(得分:0)
您不需要安装 npm 工具或库来生成假数据,只需向项目添加额外不需要的任务即可。直接用Mockaroo这样的在线工具,导出为json,再导入到Mongo DB,如上。
可能会节省一个小时的时间。