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 选择成功

原文地址:https://www.cnblogs.com/williamjie/p/11456823.html

时间: 2024-10-15 11:06:05

java 连接mongodb的相关文章

java连接mongodb源码解读

用mongdb也大半年了,一直是业务上的逻辑实现了就ok.然而这样并不能进步--因此今天查了查java连接mongodb驱动的源码,搜到的各种信息整合一下,方便以后深入的使用. 先贴连接数据库代码  List<ServerAddress> replicaSet = new          ArrayList<ServerAddress>();          replicaSet.add(new ServerAddress("127.0.0.1", 2701

java连接MongoDB数据库

这段时间尝试了一下MongoDB,感觉十分易用,方便,相比关系型的数据库来说优势也很大,于是尝试了下使用java连接MongoDB,并进行了 基本的增删改查操作. 首先先在控制台中连接数据库,查看数据库有几个表. 现在,新建一个maven工程,pom.xml中的依赖如下: <!-- WICKET DEPENDENCIES --> <dependency> <groupId>org.apache.wicket</groupId> <artifactId&

Java连接MongoDB

1.创建连接用户 > mongo ip:port > use test > db.addUser("root", "123456") > db.auth("root","123456") (登陆验证) 2.java连接mongodb的驱动,下载地址:https://github.com/mongodb/mongo-java-driver/downloads. 3.测试代码 import java.net

java连接MongoDB报错解决

报错内容 com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=127.0.0.1:27017, type=UNKN

java连接MongoDB查询导出为excel表格

背景 因为项目需求.每一个星期须要统计每一个公众号7天的訪问数,月底就须要统计一个月的訪问数,40多个公众号.每次手动统计都须要花费1个小时,总之是一项无技术耗时耗神的手工活. 于是.想写个程序来统计.每次仅仅须要执行下代码,输入一些配置信息就导出为excel表格,直接复制完事,可是水平有限.就仅仅用java写了个. demo下载 下载地址:http://download.csdn.net/detail/musuny/8769499 程序说明 依赖外部jar包 fastjson-1.1.36.j

实现java连接mongoDB(简单封装)

最近要完成一个登陆注册的功能,加上刚刚学了MongoDB,就想试一试,查了很多博客,都不能找到一篇完整的用例,只有自己折腾下了.这里我们需要加载一个jar包,我用的是mongo-java-driver-3.8.0.jar,主要用到的是client下的相关组件. package com.amyyang.mongodb; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb

Java连接MongoDB进行增删改查

1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean; import java.io.Serializable; import java.util.Date; /** * @since 对应于mongodb中的数据库test中的表com * @author think * */ public class Company implements Seri

java连接mongodb报错

<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;">写一个简短的测试程序却报错,郁闷</span> <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><

Java连接MongoDB样例

package com.moonlit.example; import com.mongodb.BasicDBObject; import com.mongodb.BulkWriteOperation; import com.mongodb.BulkWriteResult; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject