java 连接mongodb

Posted williamjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 连接mongodb相关的知识,希望对你有一定的参考价值。

 

java mongo 驱动API   http://mongodb.github.io/mongo-java-driver/

 

maven中添加依赖

http://mongodb.github.io/mongo-java-driver/

<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver</artifactId>
        <version>3.4.1</version>
    </dependency>
</dependencies>
<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>bson</artifactId>
        <version>3.4.1</version>
    </dependency>
</dependencies>

  

JavaProject

技术图片

连接数据库

连接数据库,你需要指定数据库名称,如果指定的数据库不存在,mongo会自动创建数据库。

连接数据库的Java代码如下:

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC
   public static void main( String args[] )
      try   
       // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
       
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
       System.out.println("Connect to database successfully");
        
      catch(Exception e)
        System.err.println( e.getClass().getName() + ": " + e.getMessage() );
     
   

  

现在,让我们来编译运行程序并连接到数据库 mycol。

你可以根据你的实际环境改变 MongoDB JDBC 驱动的路径。

本实例将 MongoDB JDBC 启动包 mongo-java-driver-3.2.2.jar 放在本地目录下:

$ javac -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC.java
$ java -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC
Connect to database successfully
Authentication: true

  

本实例中 Mongo 数据库无需用户名密码验证。如果你的 Mongo 需要验证用户名及密码,可以使用以下代码:

package com.iwhere.rongyun.config;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.bson.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

@Configuration
public class MongoConfig 
    private static Logger LOGGER = LoggerFactory.getLogger(MongoConfig.class);
    
    @Value("$mongodb.hostports")
    private String hostports;
    
    @Value("$mongodb.maxConnect")
    private String maxConnect;
    @Value("$mongodb.maxWaitThread")
    private String maxWaitThread;
    @Value("$mongodb.maxTimeOut")
    private String maxTimeOut;
    @Value("$mongodb.maxWaitTime")
    private String maxWaitTime;
    
    @Value("$mongodb.username")
    private String username;
    @Value("$mongodb.password")
    private String password;
    @Value("$mongodb.database")
    private String database;
    @Value("$mongodb.collection")
    private String collection;
    
    
    @Bean
    public MongoClient mongoClient() 
        MongoClient mongoClient = null;
        
        MongoClientOptions.Builder build = new MongoClientOptions.Builder();  
        build.connectionsPerHost(Integer.valueOf(maxConnect));  
        build.threadsAllowedToBlockForConnectionMultiplier(Integer.valueOf(maxWaitThread));  
        build.connectTimeout(Integer.valueOf(maxTimeOut) * 1000);  
        build.maxWaitTime(Integer.valueOf(maxWaitTime) * 1000);  
        MongoClientOptions options = build.build();  
        
        try 
            List<ServerAddress> addrs = new ArrayList<ServerAddress>();  
            for (String hostport : hostports.split(", *")) 
                if (StringUtils.isBlank(hostport)) 
                    continue;
                
                hostport = hostport.trim();
                
                ServerAddress serverAddress = new ServerAddress(hostport.split(":")[0],Integer.valueOf(hostport.split(":")[1]));
                addrs.add(serverAddress);  
            
              
            MongoCredential credential = MongoCredential.createScramSha1Credential(username, database, password.toCharArray());  
            List<MongoCredential> credentials = new ArrayList<MongoCredential>();  
            credentials.add(credential);
            
            mongoClient = new MongoClient(addrs,credentials, options); 
            
            LOGGER.info("【mongodb client】: mongodb客户端创建成功");
         catch (Exception e) 
            LOGGER.error("【mongodb client】: mongodb客户端创建成功");
            e.printStackTrace();
        
        return mongoClient;
    
    
    @Bean
    public MongoDatabase mongoDatabase(MongoClient mongoClient) 
         MongoDatabase mongoDatabase = mongoClient.getDatabase(database);
         return mongoDatabase;
    
    
    @Bean
    public MongoCollection<Document> mongoCollection(MongoDatabase mongoDatabase) 
        MongoCollection<Document> mongoCollection = mongoDatabase.getCollection(collection);
        return mongoCollection;
    
    

  通过spring配置文件注入所需的值即可, mondb.properties为: 

mongodb.hostports=192.168.51.100:2,192.168.51.101:533,192.168.51.102:21
mongodb.maxConnect=50
mongodb.maxWaitThread=50
mongodb.maxTimeOut=60
mongodb.maxWaitTime=60
mongodb.username=name
mongodb.password=pass
mongodb.database=data
mongodb.collection=user_rongyun

 

 

创建集合

我们可以使用 com.mongodb.client.MongoDatabase 类中的createCollection()来创建集合

代码片段如下:

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC
   public static void main( String args[] )
      try   
      // 连接到 mongodb 服务
      MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         
       
      // 连接到数据库
      MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
      System.out.println("Connect to database successfully");
      mongoDatabase.createCollection("test");
      System.out.println("集合创建成功");
        
      catch(Exception e)
        System.err.println( e.getClass().getName() + ": " + e.getMessage() );
     
   

  

获取集合

我们可以使用com.mongodb.client.MongoDatabase类的 getCollection() 方法来获取一个集合

代码片段如下:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC
   public static void main( String args[] )
      try   
       // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
       
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
       System.out.println("Connect to database successfully");
      
       MongoCollection<Document> collection = mongoDatabase.getCollection("test");
       System.out.println("集合 test 选择成功");
      catch(Exception e)
        System.err.println( e.getClass().getName() + ": " + e.getMessage() );
     
   

  

插入文档

我们可以使用com.mongodb.client.MongoCollection类的 insertMany() 方法来插入一个文档

代码片段如下:

import java.util.ArrayList;
import java.util.List;
import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC
   public static void main( String args[] )
      try   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");
         
         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");
         //插入文档  
         /** 
         * 1. 创建文档 org.bson.Document 参数为key-value的格式 
         * 2. 创建文档集合List<Document> 
         * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document) 
         * */
         Document document = new Document("title", "MongoDB").  
         append("description", "database").  
         append("likes", 100).  
         append("by", "Fly");  
         List<Document> documents = new ArrayList<Document>();  
         documents.add(document);  
         collection.insertMany(documents);  
         System.out.println("文档插入成功");  
      catch(Exception e)
         System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      
   

  编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功
文档插入成功

  

检索所有文档

我们可以使用 com.mongodb.client.MongoCollection 类中的 find() 方法来获取集合中的所有文档。

此方法返回一个游标,所以你需要遍历这个游标。

代码片段如下:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC
   public static void main( String args[] )
      try   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");
         
         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");
         
         //检索所有文档  
         /** 
         * 1. 获取迭代器FindIterable<Document> 
         * 2. 获取游标MongoCursor<Document> 
         * 3. 通过游标遍历检索出的文档集合 
         * */  
         FindIterable<Document> findIterable = collection.find();  
         MongoCursor<Document> mongoCursor = findIterable.iterator();  
         while(mongoCursor.hasNext())  
            System.out.println(mongoCursor.next());  
           
      
      catch(Exception e)
         System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      
   

  

更新文档

你可以使用 com.mongodb.client.MongoCollection 类中的 updateMany() 方法来更新集合中的文档。

代码片段如下:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;

public class MongoDBJDBC
   public static void main( String args[] )
      try   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
         
         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");
         
         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");
         
         //更新文档   将文档中likes=100的文档修改为likes=200   
         collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));  
         //检索查看结果  
         FindIterable<Document> findIterable = collection.find();  
         MongoCursor<Document> mongoCursor = findIterable.iterator();  
         while(mongoCursor.hasNext())  
            System.out.println(mongoCursor.next());  
           
      
      catch(Exception e)
         System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      
   

  

删除第一个文档

要删除集合中的第一个文档,首先你需要使用com.mongodb.DBCollection类中的 findOne()方法来获取第一个文档,然后使用remove 方法删除。

代码片段如下:

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;

public class MongoDBJDBC
   public static void main( String args[] )
      try   
         // 连接到 mongodb 服务
         MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

         // 连接到数据库
         MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  
         System.out.println("Connect to database successfully");

         MongoCollection<Document> collection = mongoDatabase.getCollection("test");
         System.out.println("集合 test 选择成功");

         //删除符合条件的第一个文档  
         collection.deleteOne(Filters.eq("likes", 200));  
         //删除所有符合条件的文档  
         collection.deleteMany (Filters.eq("likes", 200));  
         //检索查看结果  
         FindIterable<Document> findIterable = collection.find();  
         MongoCursor<Document> mongoCursor = findIterable.iterator();  
         while(mongoCursor.hasNext())  
           System.out.println(mongoCursor.next());  
           
           
      catch(Exception e)
        System.err.println( e.getClass().getName() + ": " + e.getMessage() );
     
   

  

使用dbCollection进行操作

package com.iwhere.test2;

import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;

import org.bson.types.ObjectId;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.mongodb.core.MongoTemplate;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.QueryBuilder;
import com.mongodb.QueryOperators;

public class MongoDBTest 
    Mongo mongo = null;
    DB db = null;
    DBCollection userCollection = null;

    private MongoTemplate mongoTemplate;

    @Before
    public void setUp() throws Exception 
        // 创建一个MongoDB的数据库连接对象,无参数的话它默认连接到当前机器的localhost地址,端口是27017。
//        mongo = new Mongo("192.168.225.101", 27017);
        // 得到一个test的数据库,如果mongoDB中没有这个数据库,当向此库中添加数据的时候会自动创建
//        db = mongo.getDB("test");
//        db.authenticate("test", "test".toCharArray());
        // 获取到一个叫做"user"的集合,相当于关系型数据库中的"表"
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-mvc-servlet.xml");
        mongoTemplate = (MongoTemplate) context.getBean("mongoTemplate");
        userCollection = mongoTemplate.getCollection("user");
    

    /**
     * 查询所有的集合名称
     */
    public void testGetAllCollections() 
        Set<String> collectionNames = db.getCollectionNames();
        for (String name : collectionNames) 
            System.out.println("collectionName:" + name);
        
    

    /**
     * 查询所有的用户信息
     */
    @Test
    public void testFind() 
        testInitTestData();
        // find方法查询所有的数据并返回一个游标对象
        DBCursor cursor = userCollection.find();

        while (cursor.hasNext()) 
            print(cursor.next());
        
        // 获取数据总条数
        int sum = cursor.count();
        System.out.println("sum===" + sum);
    

    /**
     * 查询第一条数据
     */
    public void testFindOne() 
        testInitTestData();
        // 只查询第一条数据
        DBObject oneUser = userCollection.findOne();
        print(oneUser);
    

    /**
     * 条件查询
     */
    public void testConditionQuery() 
        testInitTestData();
        // 查询id=50a1ed9965f413fa025166db
        DBObject oneUser = userCollection.findOne(new BasicDBObject("_id", new ObjectId("50a1ed9965f413fa025166db")));
        print(oneUser);

        // 查询age=24
        List<DBObject> userList1 = userCollection.find(new BasicDBObject("age", 24)).toArray();
        print("        find age=24: ");
        printList(userList1);

        // 查询age>=23
        List<DBObject> userList2 = userCollection.find(new BasicDBObject("age", new BasicDBObject("$gte", 23))).toArray();
        print("        find age>=23: ");
        printList(userList2);

        // 查询age<=20
        List<DBObject> userList3 = userCollection.find(new BasicDBObject("age", new BasicDBObject("$lte", 20))).toArray();
        print("        find age<=20: ");
        printList(userList3);

        // 查询age!=25
        List<DBObject> userList4 = userCollection.find(new BasicDBObject("age", new BasicDBObject("$ne", 25))).toArray();
        print("        find age!=25: ");
        printList(userList4);

        // 查询age in[23,24,27]
        List<DBObject> userList5 = userCollection
                .find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN, new int[]  23, 24, 27 )))
                .toArray();
        print("        find agein[23,24,27]: ");
        printList(userList5);

        // 查询age not in[23,24,27]
        List<DBObject> userList6 = userCollection
                .find(new BasicDBObject("age", new BasicDBObject(QueryOperators.NIN, new int[]  23, 24, 27 )))
                .toArray();
        print("        find age not in[23,24,27]: ");
        printList(userList6);

        // 查询29>age>=20
        List<DBObject> userList7 = userCollection.find(new BasicDBObject("age", new BasicDBObject("$gte", 20).append("$lt", 29)))
                .toArray();
        print("        find 29>age>=20: ");
        printList(userList7);

        // 查询age>24 and name="zhangguochen"
        BasicDBObject query = new BasicDBObject();
        query.put("age", new BasicDBObject("$gt", 24));
        query.put("name", "zhangguochen");
        List<DBObject> userList8 = userCollection.find(query).toArray();
        print("        find age>24 and name=‘zhangguochen‘:");
        printList(userList8);

        // 和上面的查询一样,用的是QueryBuilder对象
        QueryBuilder queryBuilder = new QueryBuilder();
        queryBuilder.and("age").greaterThan(24);
        queryBuilder.and("name").equals("zhangguochen");
        List<DBObject> userList82 = userCollection.find(queryBuilder.get()).toArray();
        print("        QueryBuilder find age>24 and name=‘zhangguochen‘:");
        printList(userList82);

        // 查询所有的用户,并按照年龄升序排列
        List<DBObject> userList9 = userCollection.find().sort(new BasicDBObject("age", 1)).toArray();
        print("        find all sort age asc: ");
        printList(userList9);

        // 查询特定字段
        DBObject query1 = new BasicDBObject();// 要查的条件
        query.put("age", new BasicDBObject("$gt", 20));
        DBObject field = new BasicDBObject();// 要查的哪些字段
        field.put("name", true);
        field.put("age", true);
        List<DBObject> userList10 = userCollection.find(query1, field).toArray();
        print("        select name,age where age>20");
        printList(userList10);

        // 查询部分数据
        DBObject query2 = new BasicDBObject();// 查询条件
        query2.put("age", new BasicDBObject("$lt", 27));
        DBObject fields = new BasicDBObject();// 查询字段
        fields.put("name", true);
        fields.put("age", true);
        List<DBObject> userList11 = userCollection.find(query2, fields, 1, 1).toArray();
        print("        select age,name from user skip 1 limit 1:");
        printList(userList11);

        // 模糊查询
        DBObject fuzzy_query = new BasicDBObject();
        String keyWord = "zhang";
        Pattern pattern = Pattern.compile("^" + keyWord + ".*$", Pattern.CASE_INSENSITIVE);
        fuzzy_query.put("name", pattern);
        // 根据name like zhang%查询
        List<DBObject> userList12 = userCollection.find(fuzzy_query).toArray();
        print("        select * from user where name like ‘zhang*‘");
        printList(userList12);

    

    /**
     * 删除用户数据
     */
    public void testRemoveUser() 
        testInitTestData();
        DBObject query = new BasicDBObject();
        // 删除age>24的数据
        query.put("age", new BasicDBObject("$gt", 24));
        userCollection.remove(query);
        printList(userCollection.find().toArray());
    

    /**
     * 修改用户数据
     */
    public void testUpdateUser() 

        // update(query,set,false,true);
        // query:需要修改的数据查询条件,相当于关系型数据库where后的语句
        // set:需要设的值,相当于关系型数据库的set语句
        // false:需要修改的数据如果不存在,是否插入新数据,false不插入,true插入
        // true:如果查询出多条则不进行修改,false:只修改第一条

        testInitTestData();

        // 整体更新
        DBObject query = new BasicDBObject();
        query.put("age", new BasicDBObject("$gt", 15));
        DBObject set = userCollection.findOne(query);// 一定是查询出来的DBObject,否则会丢掉一些列,整体更新
        set.put("name", "Abc");
        set.put("age", 19);
        set.put("interest", new String[]  "hadoop", "study", "mongodb" );
        DBObject zhangguochenAddress = new BasicDBObject();
        zhangguochenAddress.put("address", "henan");
        set.put("home", zhangguochenAddress);
        userCollection.update(query, // 需要修改的数据条件
                set, // 需要赋的值
                false, // 数据如果不存在,是否新建
                false);// false只修改第一条,true如果有多条就不修改
        printList(userCollection.find().toArray());

        // 局部更新,只更改某些列
        // 加上$set会是局部更新,不会丢掉某些列,只把name更新为"jindazhong",年龄更新为123
        BasicDBObject set1 = new BasicDBObject("$set", new BasicDBObject("name", "jindazhong").append("age", 123));
        userCollection.update(query, // 需要修改的数据条件
                set1, // 需要赋的值
                false, // 数据如果不存在,是否新建
                false);// false只修改第一条,true如果有多条就不修改
        printList(userCollection.find().toArray());

        // 批量更新
        // user.updateMulti(new BasicDBObject("age",new
        // BasicDBObject("$gt",16)),
        // new BasicDBObject("$set", new
        // BasicDBObject("name","jindazhong").append("age", 123)));
        // printList(user.find().toArray());

    

    /**
     * 初始化测试数据
     */
    public void testInitTestData() 
        userCollection.drop();
        DBObject zhangguochen = new BasicDBObject();
        zhangguochen.put("name", "zhangguochen");
        zhangguochen.put("age", 25);
        zhangguochen.put("interest", new String[]  "hadoop", "study", "mongodb" );
        DBObject zhangguochenAddress = new BasicDBObject();
        zhangguochenAddress.put("address", "henan");
        zhangguochen.put("home", zhangguochenAddress);

        DBObject jindazhong = new BasicDBObject();
        jindazhong.put("name", "jindazhong");
        jindazhong.put("age", 21);
        jindazhong.put("interest", new String[]  "hadoop", "mongodb" );
        jindazhong.put("wife", "小龙女");
        DBObject jindazhongAddress = new BasicDBObject();
        jindazhongAddress.put("address", "shanghai");
        jindazhong.put("home", jindazhongAddress);

        DBObject yangzhi = new BasicDBObject();
        yangzhi.put("name", "yangzhi");
        yangzhi.put("age", 22);
        yangzhi.put("interest", new String[]  "shopping", "sing", "hadoop" );
        DBObject yangzhiAddress = new BasicDBObject();
        yangzhiAddress.put("address", "hubei");
        yangzhi.put("home", yangzhiAddress);

        DBObject diaoyouwei = new BasicDBObject();
        diaoyouwei.put("name", "diaoyouwei");
        diaoyouwei.put("age", 23);
        diaoyouwei.put("interest", new String[]  "notejs", "sqoop" );
        DBObject diaoyouweiAddress = new BasicDBObject();
        diaoyouweiAddress.put("address", "shandong");
        diaoyouwei.put("home", diaoyouweiAddress);

        DBObject cuichongfei = new BasicDBObject();
        cuichongfei.put("name", "cuichongfei");
        cuichongfei.put("age", 24);
        cuichongfei.put("interest", new String[]  "ebsdi", "dq" );
        cuichongfei.put("wife", "凤姐");
        DBObject cuichongfeiAddress = new BasicDBObject();
        cuichongfeiAddress.put("address", "shanxi");
        cuichongfei.put("home", cuichongfeiAddress);

        DBObject huanghu = new BasicDBObject();
        huanghu.put("name", "huanghu");
        huanghu.put("age", 25);
        huanghu.put("interest", new String[]  "shopping", "study" );
        huanghu.put("wife", "黄蓉");
        DBObject huanghuAddress = new BasicDBObject();
        huanghuAddress.put("address", "guangdong");
        huanghu.put("home", huanghuAddress);

        DBObject houchangren = new BasicDBObject();
        houchangren.put("name", "houchangren");
        houchangren.put("age", 26);
        houchangren.put("interest", new String[]  "dota", "dq" );
        DBObject houchangrenAddress = new BasicDBObject();
        houchangrenAddress.put("address", "shandong");
        houchangren.put("home", houchangrenAddress);

        DBObject wangjuntao = new BasicDBObject();
        wangjuntao.put("name", "wangjuntao");
        wangjuntao.put("age", 27);
        wangjuntao.put("interest", new String[]  "sport", "study" );
        wangjuntao.put("wife", "王语嫣");
        DBObject wangjuntaoAddress = new BasicDBObject();
        wangjuntaoAddress.put("address", "hebei");
        wangjuntao.put("home", wangjuntaoAddress);

        DBObject miaojiagui = new BasicDBObject();
        miaojiagui.put("name", "miaojiagui");
        miaojiagui.put("age", 28);
        miaojiagui.put("interest", new String[]  "hadoop", "study", "linux" );
        miaojiagui.put("wife", null);
        DBObject miaojiaguiAddress = new BasicDBObject();
        miaojiaguiAddress.put("address", "未知");
        miaojiagui.put("home", miaojiaguiAddress);

        DBObject longzhen = new BasicDBObject();
        longzhen.put("name", "longzhen");
        longzhen.put("age", 29);
        longzhen.put("interest", new String[]  "study", "cook" );
        longzhen.put("wife", null);
        DBObject longzhenAddress = new BasicDBObject();
        longzhenAddress.put("address", "sichuan");
        longzhen.put("home", longzhenAddress);

        userCollection.insert(zhangguochen);
        userCollection.insert(jindazhong);
        userCollection.insert(yangzhi);
        userCollection.insert(diaoyouwei);
        userCollection.insert(cuichongfei);
        userCollection.insert(huanghu);
        userCollection.insert(houchangren);
        userCollection.insert(wangjuntao);
        userCollection.insert(miaojiagui);
        userCollection.insert(longzhen);
    

    public void testRemove() 
        userCollection.drop();
    

    /**
     * 打印数据
     * 
     * @param object
     */
    public void print(Object object) 
        System.out.println(object);
    

    /**
     * 打印列表
     * 
     * @param objectList
     */
    public void printList(List<DBObject> objectList) 
        for (Object object : objectList) 
            print(object);
        
    

  

 

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功

 

 

 

 

 

以上是关于java 连接mongodb的主要内容,如果未能解决你的问题,请参考以下文章

MongoDBMongoDB的一些操作命令

MongoDBMongodb——GridFS存储

mongoDBmongoDB副本集实战

MongoDBMongoDb数据结构

MongoDBmongodb设置用户访问权限

MongodbMongodb复制和分片