zoukankan      html  css  js  c++  java
  • Java和MongoDB之Hello World

    1.新建Project

    新建Java Project,并把mongo-java-driver驱动加入到项目bulid path中,如果你使用的是maven增加依赖。


          <dependency>
              
    <groupId>org.mongodb</groupId>
              
    <artifactId>mongo-java-driver</artifactId>
              
    <version>2.10.1</version>
          
    </dependency>

    2.连接上MongoDB

    //>2.10版本
    MongoClient mongo = new MongoClient( "localhost" , 27017 );

    //老版本  
    Mongo mongo = new Mongo("localhost"27017);

    如果需要验证,需要输入用户名和密码


        MongoClient mongoClient = new MongoClient();
        DB db 
    = mongoClient.getDB("database name");
        
    boolean auth = db.authenticate("username""password".toCharArray());
    3.MongoDB数据库

    得到MongoDB中的数据库,如果数据库名不存在,MongoDB会自动创建


    DB db = mongo.getDB("database name");
    显示所有的数据库
        List<String> dbs = mongo.getDatabaseNames();
        
    for(String db : dbs){
            System.out.println(db);
        }
    4.MongoDB Collection(MongoDB表)

    得到数据库中的表

        DB db = mongo.getDB("testdb");
        DBCollection table 
    = db.getCollection("user");
    显示数据库中的所有表
        DB db = mongo.getDB("testdb");
        Set
    <String> tables = db.getCollectionNames();
     
        
    for(String coll : tables){
            System.out.println(coll);
        }
    5.插入、查找、更新、删除操作

    插入数据,向Collection(表)中插入一个Document

        DBCollection table = db.getCollection("user");
        BasicDBObject document 
    = new BasicDBObject();
        document.put(
    "name""qiyadeng");
        document.put(
    "age"30);
        document.put(
    "createdDate"new Date());
        table.insert(document);
    更新Document中的name="qiyadeng.com"
    	
        DBCollection table = db.getCollection("user");

         BasicDBObject query 
    = new BasicDBObject();
        query.put(
    "name""qiyadeng");

        BasicDBObject newDocument 
    = new BasicDBObject();
        newDocument.put(
    "name""qiyadeng.com");

        BasicDBObject updateObj 
    = new BasicDBObject();
        updateObj.put(
    "$set", newDocument);
     
        table.update(query, updateObj);
    从Collection中查找name="qiyadeng.com"的Document
        DBCollection table = db.getCollection("user");
     
        BasicDBObject searchQuery 
    = new BasicDBObject();
        searchQuery.put(
    "name""qiyadeng.com");
     
        DBCursor cursor 
    = table.find(searchQuery);
     
        
    while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }
    删除name="qiyadeng"的Document
        DBCollection table = db.getCollection("user");
     
        BasicDBObject searchQuery 
    = new BasicDBObject();
        searchQuery.put(
    "name""qiyadeng.com");
     
        table.remove(searchQuery);
    
    6.完整的例子
    
    package com.qiyadeng.mongodb;


    import java.util.Date;

    import com.mongodb.BasicDBObject;
    import com.mongodb.DB;
    import com.mongodb.DBCollection;
    import com.mongodb.DBCursor;
    import com.mongodb.MongoClient;

    public class MongoDBSample {

        
    public static void main(String[] args) throws Exception{
                 
                
    /**** Connect to MongoDB ****/
                
    //2.10.0后,使用MongoClient
                MongoClient mongo = new MongoClient("localhost"27017);
             
                
    /**** Get database ****/
                
    // if database doesn't exists, MongoDB will create it for you
                DB db = mongo.getDB("testdb");
             
                
    /**** Get collection / table from 'testdb' ****/
                
    // if collection doesn't exists, MongoDB will create it for you
                DBCollection table = db.getCollection("user");
             
                
    /**** Insert ****/
                
    // create a document to store key and value
                BasicDBObject document = new BasicDBObject();
                document.put(
    "name""qiyadeng");
                document.put(
    "age"30);
                document.put(
    "createdDate"new Date());
                table.insert(document);
             
                
    /**** Find and display ****/
                BasicDBObject searchQuery 
    = new BasicDBObject();
                searchQuery.put(
    "name""qiyadeng");
             
                DBCursor cursor 
    = table.find(searchQuery);
             
                
    while (cursor.hasNext()) {
                    System.out.println(cursor.next());
                }
             
                
    /**** Update ****/
                
    // search document where name="qiyadeng" and update it with new values
                BasicDBObject query = new BasicDBObject();
                query.put(
    "name""qiyadeng");
             
                BasicDBObject newDocument 
    = new BasicDBObject();
                newDocument.put(
    "name""qiyadeng.com");
             
                BasicDBObject updateObj 
    = new BasicDBObject();
                updateObj.put(
    "$set", newDocument);
             
                table.update(query, updateObj);
             
                
    /**** Find and display ****/
                BasicDBObject searchQuery2 
                    
    = new BasicDBObject().append("name""qiyadeng.com");
             
                DBCursor cursor2 
    = table.find(searchQuery2);
             
                
    while (cursor2.hasNext()) {
                    System.out.println(cursor2.next());
                }
        }
    }

    
    

    输出

    "_id" : { "$oid" : "51444c88874c79654063356b"} , "name" : "qiyadeng" , "age" : 30 , "createdDate" : { "$date" : "2013-03-16T10:42:16.555Z"}}
    "_id" : { "$oid" : "51444c88874c79654063356b"} , "age" : 30 , "createdDate" : { "$date" : "2013-03-16T10:42:16.555Z"} , "name" : "qiyadeng.com"}
    
    使用mongo验证创建的数据库testdb,collection user是否存在。
    
    

    原创文章,转载请注明: 转载自http://www.qiyadeng.com/

    本文链接地址: Java和MongoDB之Hello World

  • 相关阅读:
    帧同步优化难点及解决方案
    四元数
    臭鼬管理法
    十分钟理解Gradle
    深入理解Android之Gradle
    走出体制的臭鼬工厂,臭鼬著名的“14条”管理原则
    Unity5-ABSystem(五):AssetBundle内存
    Unity5-ABSystem(四):AssetBundle依赖
    Unity5-ABSystem(三):AssetBundle加载
    ASP.NET Core搭建多层网站架构【2-公共基础库】
  • 原文地址:https://www.cnblogs.com/qiyadeng/p/2970131.html
Copyright © 2011-2022 走看看