zoukankan      html  css  js  c++  java
  • Java and MongoDB link for project

    鉴于开源项目的发展,大力拥抱开源社区。发现Java和MongoDB不失为一个较好的选择。

    与其他数据库一样,同样需要mongo-java-driver,构建了Java与MongoDB的交互。

    1. 连接MongoDB

    1.1 普通数据库的连接

    MongoClient mongoClient = new MongoClient();
    
    MongoClient mongoClient = new MongoClient( "localhost" );
    
    MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
    
    MongoClient mongoClient = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017),new ServerAddress("localhost", 27018),new ServerAddress("localhost", 27019)));
    

    1.2 有权限要求的数据库连接

    MongoCredential credential = MongoCredential.createMongoCRCredential(userName, database, password);
    MongoClient mongoClient = new MongoClient(new ServerAddress(), Arrays.asList(credential));

    2. 连接MongoDB具体数据库

    2.1 连接具体数据库

    DB db = mongoClient.getDB( "mydb" );
    

    2.2 打印所有数据库

    List<String> dbs = mongoClient.getDatabaseNames();
    for (String db : dbs) {
        System.out.println(db);
    }
    

    3. 获得数据库中的具体一个集合

    3.1 连接具体集合

    DBCollection coll = db.getCollection("testCollection");
    

    3.2 打印所有集合

    Set<String> tables = db.getCollectionNames();
    for (String coll : tables) {
        System.out.println(coll);
    }
    

    4. 插入数据项

    BasicDBObject doc = new BasicDBObject("name", "MongoDB")
            .append("type", "database")
            .append("count", 1)
            .append("info", new BasicDBObject("x", 203).append("y", 102));
    coll.insert(doc);
    

    5. 查询数据项

    5.1 查询最新一个数据项

    DBObject myDoc = coll.findOne();
    System.out.println(myDoc);
    

    5.2 查询所有数据项

    DBCursor cursor = coll.find();
    try {
       while(cursor.hasNext()) {
           System.out.println(cursor.next());
       }
    } finally {
       cursor.close();
    }
    

    5.3 查询数据项个数

    System.out.println(coll.getCount());
    

    5.4 查询特定数据项

    5.4.1 等于某个条件

    BasicDBObject query = new BasicDBObject("i", 71);
    
    cursor = coll.find(query);
    
    try {
       while(cursor.hasNext()) {
           System.out.println(cursor.next());
       }
    } finally {
       cursor.close();
    }
    

    5.4.2 大于或者小于某个条件

    // find all where i > 50
    query = new BasicDBObject("i", new BasicDBObject("$gt", 50));
    
    cursor = coll.find(query);
    try {
        while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }
    } finally {
        cursor.close();
    }
    

    6. 更新数据项

    DBCollection table = db.getCollection("user");
    
    BasicDBObject query = new BasicDBObject();
    query.put("name", "mkyong");
    
    BasicDBObject newDocument = new BasicDBObject();
    newDocument.put("name", "mkyong-updated"); 
    BasicDBObject updateObj = new BasicDBObject();
    updateObj.put("$set", newDocument); 
    
    table.update(query, updateObj);
    

    7. 删除数据项

    DBCollection table = db.getCollection("user");
    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("name", "mkyong"); 
    table.remove(searchQuery);
    
  • 相关阅读:
    [BAT] 以当前时间为名创建文件夹,将本地文件夹里的文件拷贝到远程共享目录,而且保证本地和Jenkins上运行都成功
    [Jenkins] 执行SoapUI的task,设置邮件内容为HTML+CSS
    bzoj 2435 dfs处理
    Gym 100989E 字符串
    Codeforces Beta Round #95 (Div. 2) C 组合数学
    Gym 100989F 水&愚&vector
    Gym 100971C 水&愚&三角形
    Gym 100971B 水&愚
    HDU 5696 RMQ+滑窗
    UVA 1619/POJ2796 滑窗算法/维护一个单调栈
  • 原文地址:https://www.cnblogs.com/chenguanfu/p/4294205.html
Copyright © 2011-2022 走看看