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 ~]$

employees表

employees.js

posted @ 2025-05-17 10:11  kahnyao  阅读(56)  评论(0)    收藏  举报