ArangoDB入门教程(五)java操作从mongo导入ArangoDB数据库

将起点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() );
        }
    }
}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值