MongoDB创建测试数据
MongoDB生成测试数据
使用的函数
| 函数 | 说明 |
|---|---|
| Math.random() | 返回0~1之间的随机数 |
| Math.floor() | 向上取整 |
| new Date() | UTC时间(0时区) |
示例
| 字段 | 类型 | 说明 |
|---|---|---|
| Math.floor(Math.random() * 100) | 数值 | 100内的随机整数 |
for循环批量插入
use testdb
for(i=1;i<=1000;i++){
db.test_user.insertOne({"id":i,"name":"test"+i,"date":new Date()})
}
for(var i = 0; i < 10000; i++) {
db.test_info.insertOne({x:i, name:"test" + Math.floor(Math.random() * 100), scores : Math.floor(Math.random() * 100)})
}
insertOne单行插入
use testdb
db.test_t.insertOne({id:1,name:'zhangsan',age:30});
db.test_t.insertOne({id:2,name:'lisi',age:33});
db.test_t.insertOne({id:3,name:'wangwu',age:23});
insertMany批量插入
db.inventory.insertMany([
{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);
PostgreSQL数据转json导入MongoDB
-- PostgreSQL创建测试数据
create table test_t(id int,name varchar(100),age int);
insert into test_t values (1,'zhangsan',20),(2,'lisi',30),(3,'wangwu',40);
-- 拼接MongoDB单行插入
select concat('db.test_t.insertOne(',t.json_data,');') from (
select row_to_json(test_t) as json_data from test_t
) t;
-- 拼接MongoDB批量插入
select concat('db.test_t.insertMany(',t.json_array,');') from (
select json_agg(row_to_json(test_t)) as json_array from test_t
) t;
-- 拼接MongoDB批量插入(元素换行)
select concat('db.test_t.insertMany('||chr(13),replace(t.json_array,',{',', '||chr(13)||'{'),');') from (
select json_agg(row_to_json(test_t))::text as json_array from test_t
) t;
当行数较多时处理
#将sql写到文件里
cat > 1.sql << "EOF"
select concat('db.test_t.insertMany(',t.json_array,');') from (
select json_agg(row_to_json(test_t)) as json_array from test_t
) t;
EOF
#执行sql并整理执行的结果
psql -Atf 1.sql|sed -e 's/},/},\n/g' -e 's/\[{/[\n {/'
[postgres@centos7 ~]$ psql -Atf 1.sql
db.test_t.insertMany([{"id":1,"name":"zhangsan","age":20}, {"id":2,"name":"lisi","age":30}, {"id":3,"name":"wangwu","age":40}]);
[postgres@centos7 ~]$ psql -Atf 1.sql|sed -e 's/},/},\n/g' -e 's/\[{/[\n {/'
db.test_t.insertMany([
{"id":1,"name":"zhangsan","age":20},
{"id":2,"name":"lisi","age":30},
{"id":3,"name":"wangwu","age":40}]);
[postgres@centos7 ~]$

浙公网安备 33010602011771号