zoukankan      html  css  js  c++  java
  • Java mongodb api疑问之MongoCollection与DBCollection

    在学习Java mongodb api时发现,可以调用不同的java mongodb api来连接数据库并进行相关操作。

    方式一:

    该方式使用mongoClient.getDB("xxx")来获取DB对象,然后通过getCollection("xxx")获取相应的集合。其他操作略。

    import com.mongodb.BasicDBObject;
    import com.mongodb.DBCollection;
    import com.mongodb.DBObject;
    import com.mongodb.MongoClient;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    public class MonConnections {
    
        //Mongo db 批量插入数据
        private static MongoClient mongoClient = new MongoClient("127.0.0.1", 27017);
        private static long count = 2000000;
        public static MongoClient getClient(){
            return  mongoClient;
        }
    
        public static void  main(String[] args){
            List<DBObject> list = new ArrayList<>();
            DBCollection collection = mongoClient.getDB("test").getCollection("book");
    
            for (int i = 0; i < 2200000; i++){
                DBObject object = new BasicDBObject();
                object.put("id", String.valueOf(count));
                Date date = new Date();
                object.put("add_time", date);
                object.put("title", "mongo"+count++);
                list.add(object);
                if (i != 0 && i %10000 == 0){
                    System.out.println("插入" + " " + i + "本书");
                    collection.insert(list);
                    list.clear();
                }
            }
    
    
        }
    }

    方式二:

    可以看出方式二使用的是getDatabase("xxx")来获取数据库对象MongoDatabase,集合的对象也是MongoCollection<Document>。

        @Test
        public void getCollection( ){
            try{   
                   // 连接到 mongodb 服务
                     MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
                     // 连接到数据库
                     MongoDatabase mongoDatabase = mongoClient.getDatabase("mongodbname");  
                   System.out.println("Connect to database successfully");
                  
                   MongoCollection<Document> collection = mongoDatabase.getCollection("javatest");
                   //DBCollection
                   System.out.println("集合 test 选择成功");
                  }catch(Exception e){
                    System.err.println( e.getClass().getName() + ": " + e.getMessage() );
                 }
           }

    问题:什么时候使用方式一?什么时候应该用方式二?

    驱动2.x使用方式一,驱动3.0及以后使用方式二。

    驱动3.0也保留了DBObject / DBCollection / DB类。但是在getDB()方法中,提示了弃用。

    因此,一般建议是将Document / MongoCollection / MongoDatabase用于新的应用程序开发。

    参考资料:https://stackoverflow.com/questions/29364787/mongocollection-versus-dbcollection-java

  • 相关阅读:
    改变checkbox默认样式
    svn clean up
    vue移动端弹框组件
    移动端滚动选择
    三目运算符判断三个条件
    Vue ---- Vuex 的第一次接触
    Vue2.0组件间数据传递
    es6
    JQuery------制作div模态框
    企业知识分享+团队协作神器之Confluence
  • 原文地址:https://www.cnblogs.com/muxi0407/p/11648106.html
Copyright © 2011-2022 走看看