将起点70来万数据从mongo导入arango
代码:
package JavaToArangodb;
import com.arangodb.ArangoCursor;
import com.arangodb.ArangoDB;
import com.arangodb.ArangoDatabase;
import com.arangodb.ArangoCollection;
import com.arangodb.entity.BaseDocument;
import com.arangodb.entity.CollectionEntity;
import com.arangodb.internal.ArangoCursorIterator;
import com.arangodb.model.AqlQueryOptions;
import com.arangodb.util.MapBuilder;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import mongoDBConnect.ExcelTest.StringUtils;
import org.apache.commons.io.FileUtils;
import org.apache.logging.log4j.util.Strings;
import org.bson.Document;
import org.junit.Test;
import java.io.File;
import java.util.*;
/***Created by mo
*On 2017/10/31 ***15:55.
******/
public class ArangoDBTest {
@Test//Qidianbook Mongo2Arango
public void QidianbookMongo2Arango(){
try{
// 连接到 mongodb 服务
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// 连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("Acgn");
System.out.println("Connect to database successfully");
MongoCollection<Document> collection = mongoDatabase.getCollection("Book_Qidian_30000_20171209");
System.out.println("集合 test 选择成功");
ArangoDB arango = new ArangoDB.Builder().host("127.0.0.1", 8529).user("root").password("root").build();
ArangoDatabase mydb = arango.db("knowledge-graph-test");
String insertCmmd = "insert @insertDoc into @@doc";
AqlQueryOptions options = new AqlQueryOptions();
options.ttl(1000000);
int ii=0;
MongoCursor<Document> mongoCursor = collection.find().iterator();
while (mongoCursor.hasNext()) {
ii++;
Document item = mongoCursor.next();
String id = item.getString("myid");
String bookname = item.getString("name");
String bookauthor = item.getString("writer");
String level = item.getString("level");
Object tagalist = item.get("type");
Object owntaglist = item.get("tag");
String termnuma = item.getString("words");
Object otherbooklist = item.get("booklist");
String termnum = item.getString("allwords");
String datesnum = item.getString("alldates");
String allclicks = item.getString("clicks").replaceAll("·"," / ");
String recommens = item.getString("recommens").replaceAll("·"," / ");;
String booknum = item.getString("allbooknum");
String bookstatus = item.getString("bookstatus");
Object award = item.get("award");
String near = item.getString("near");
String url = item.getString("url");
String updataAt = item.getString("updataAt");
System.out.println(ii+"\t"+id);
Set<String> type=new HashSet<>();
if(tagalist.toString().length()>1) {
String[] typebig=tagalist.toString().split("/");
for(int i=0;i<typebig.length;i++){
type.add(typebig[i]);
}}
Set<String> tag = new HashSet<>();
if(owntaglist.toString().length()>1) {
String[] tagsmall = owntaglist.toString().split("/");
for (int i = 0; i < tagsmall.length; i++) {
tag.add(tagsmall[i]);
}
}
Set<String> otherbooks=new HashSet<>();
if(otherbooklist.toString().length()>1) {
String[] otherbookbb = otherbooklist.toString().split("/");
for (int i = 0; i < otherbookbb.length; i++) {
otherbooks.add(otherbookbb[i]);
}
}
Set<String> awardall=new HashSet<>();
if(award.toString().length()>1) {
String[] award11 = award.toString().split("/");
for (int i = 0; i < award11.length; i++) {
awardall.add(award11[i]);
}
}
Set<String> mybookstatus = new HashSet<>();
String[] status = bookstatus.split("/");
for (int i = 0; i < status.length; i++) {
mybookstatus.add(status[i]);
}
String label = "book";
// 实体别名
Set<String> formatNames = new HashSet<>();
formatNames.add(bookname);
// 人物职位
Set<String> profession = new HashSet<>();
profession.add("写手");
// 实体规范名
String formatName = bookname;
// 只有category时,是否只适用推荐 1
String useType = "";
BaseDocument document11 = new BaseDocument();
document11.addAttribute("myid", id);
document11.addAttribute("name", bookname);
document11.addAttribute("writer", bookauthor);
document11.addAttribute("label", label);
document11.addAttribute("level", level);
document11.addAttribute("type", type);
document11.addAttribute("tag", tag);
document11.addAttribute("profession", profession);
document11.addAttribute("formatNames", formatNames);
document11.addAttribute("formatName", formatName);
document11.addAttribute("allthewords", termnuma);
document11.addAttribute("otherbooks", otherbooks);
document11.addAttribute("allwords", termnum);
document11.addAttribute("alldates", datesnum);
document11.addAttribute("clicks", allclicks);
document11.addAttribute("recommens", recommens);
document11.addAttribute("allbooknum", booknum);
document11.addAttribute("bookstatus", mybookstatus);
document11.addAttribute("award", awardall);
document11.addAttribute("url", url);
document11.addAttribute("updataAt", System.currentTimeMillis());
document11.addAttribute("near", near);
;
mydb.query(insertCmmd, new MapBuilder().put("insertDoc", document11).put("@doc", "book").get(), options, BaseDocument.class);
}
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}