通过Java将MongoDB数据库的一个集合的数据复制到另一个集合里
效果就不贴了,直接粘代码,如下:
1 import org.bson.Document; 2 3 import com.mongodb.MongoClient; 4 import com.mongodb.MongoClientOptions; 5 import com.mongodb.ServerAddress; 6 import com.mongodb.client.FindIterable; 7 import com.mongodb.client.MongoCollection; 8 import com.mongodb.client.MongoDatabase; 9 10 public class MongoDBTra { 11 public static void main(String[] args){ 12 //原表result的数据 13 MongoClientOptions option = MongoClientOptions.builder().connectTimeout(60000).build(); 14 MongoClient monGoClient = new MongoClient(new ServerAddress("localhost", 27017), option); 15 // 获取操作数据库 16 MongoDatabase db = monGoClient.getDatabase("result"); 17 // 获取集合。后面的操作,大部分都是基于集合操作 18 MongoCollection<Document> contections = db.getCollection("result"); 19 System.out.println("MongoDB数据库连接成功"); 20 21 //新建一个集合为data 22 MongoCollection<Document> data = db.getCollection("data"); 23 24 // 查询集合中的所有数据 25 FindIterable<Document> result = contections.find(); 26 for (Document document : result) { 27 String ip=document.getString("Ip"); 28 String time=document.getString("Date"); 29 String day=document.getString("Day"); 30 String Traffic=document.getString("Traffic");//此处是因为原来的字段Traffic里面都是纯数字,但是数字后面都带上了一个空格,所以后面就将其空格去掉,然后将其转为int类型 31 //将Traffic里面的空格都去掉,方便转为int字符 32 String str = Traffic.replaceAll(" ", ""); 33 //将String类型转为int类型 34 int traffic=Integer.parseInt(str); 35 String type=document.getString("Type"); 36 String id=document.getString("Id"); 37 System.out.println(ip+","+time+","+day+","+traffic+","+type+","+id); 38 //向集合data里面插入数据(data即为新建的那个集合) 39 data.insertOne( 40 new Document("ip", ip).append("time", time).append("day", day) 41 .append("traffic",traffic).append("type", type).append("id", id)); 42 } 43 System.out.println("将result集合中的数据转移到data集合中成功!"); 44 } 45 }