• 10月22日


     今天学习Mongo的api操作,用相关操作来完成实验报告

    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import com.google.gson.Gson;
    import com.mongodb.client.*;
    import com.mongodb.client.model.Filters;
    import com.mongodb.client.model.Projections;
    import org.bson.Document;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import java.util.logging.Filter;
    
    import static com.mongodb.client.model.Filters.*;
    
    public class api {
        private MongoClient mongoClient=null;
        private MongoDatabase database=null;
    
        @Before
        public void init(){
            mongoClient = MongoClients.create("mongodb://localhost:27017");
            database = mongoClient.getDatabase("teat");
        }
    
        @After
        public void close()
        {
            if(mongoClient!=null){
                mongoClient.close();
            }
        }
        @Test
        public void t(){
            MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
            MongoDatabase database = mongoClient.getDatabase("teat");
            MongoCollection<Document> collection =database.getCollection("Student");
            System.out.println("------"+collection.find().first().toJson());
            if(mongoClient!=null){
                mongoClient.close();
            }
        }
    
        @Test
        public void insert(){
            MongoCollection<Document> collection =database.getCollection("t2");
    //        Document doc=new Document("name","为什么")
    //                .append("score",new Document("English","100").append("Math","100").append("Computer","100"));
    //
    //        Document doc1=new Document("name","你在哪")
    //                .append("score",new Document("English",100).append("Math",100).append("Computer",100));
    //
    //        Document doc2=new Document("name","scofield")
    //                .append("score",new Document("English",45).append("Math",89).append("Computer",100));
    //        collection.insertOne(doc2);
    
            //批量插入
            List<Document> documents=new ArrayList();
            for(int i=0;i<5;i++){
                Document document=new Document("i",1);
                documents.add(document);
            }
            collection.insertMany(documents);
    
        }
        @Test
        public void gai() {
            MongoCollection<Document> collection = database.getCollection("t2");
            //$set 表示更新部分字段
            //collection.updateOne(Filters.eq("i",1),new Document("$set",new Document("i",999)));
    
            //批量修改
            collection.updateMany(Filters.eq("i",1),new Document("$set",new Document("i",999)));
        }
        @Test
        public void shan() {
            MongoCollection<Document> collection = database.getCollection("t2");
    
           // collection.deleteOne(Filters.eq("i",0));
            //批量删除
            collection.deleteMany(Filters.eq("i",999));
        }
        @Test
        public void cha() {
            MongoCollection<Document> collection = database.getCollection("Student");
            //FindIterable<Document>documents=collection.find(Filters.eq("i",2));
            //通过filters的式子进行连接多条条件,多条件查询
           // FindIterable<Document>documents=collection.find(or(Filters.eq("i",2),eq("i",4)));
            //通过投影指定显示那些字段
            FindIterable<Document>documents=collection.find(Filters.eq("name","scofield"))
                    .projection(Projections.fields(Projections.include("score"),Projections.excludeId()));
    
            for(Document document:documents){
                System.out.println(document.toJson());
                /**用阿里的FastJson包
                 *
                 * 该方法用于将已有的json字符串转换为json对象,并取出该对象中相应的key对应的value值
                 * 将已有的字符串转换成jsonobject,用JSON.parseObject(jsonStr)方法
                 * json中只要是{}就代表一个JSONObject,[]就代表一个JSONArray
                 * 获取JSONObject对象用JSONObject jsonobject.getJSONObject("key")方法
                 * 获取JSONArray对象用JSONObject jsonobject.getJSONArray("key")方法
                 */
                JSONObject jsonobj = JSON.parseObject(document.toJson()); //将json字符串转换成jsonObject对象
                System.out.println(jsonobj.getJSONObject("score").getString("Math"));//获取嵌套的json字符串中的属性值
            }
        }
    
    }

    学习时间:3个小时22分钟

  • 相关阅读:
    不容易系列之二
    Unicode 和Ansi下的字符和字符串转换问题
    转:sizeof()用法汇总
    转:MultiByteToWideChar和WideCharToMultiByte用法详解
    addTarget原理
    SDWebImage底层实现原理
    自动释放池的原理
    最近比较烦
    练车记录
    明天出去游乐场玩耶。
  • 原文地址:https://www.cnblogs.com/buyaoya-pingdao/p/14317556.html
Copyright © 2020-2023  润新知