mongodb--java操作

一、mongodb客户端

  mongodb提供诸多语言的客户端,也包括java的客户端。通过这些客户端,我们可以很方便地使用编写代码的方式对mongodb进行操作。这里使用java客户端进行示例。使用java客户端首先需要下载jmongodb数据库java驱动。驱动的源码地址为:https://github.com/mongodb/mongo-java-driver/ 。这里工程使用maven构建,需要添加的依赖如下:

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

二、示例

  1、添加文档

DB db = null;

    @Before
    public void getDb() throws UnknownHostException {
        MongoClient mongoClient = new MongoClient();
        // mongoClient = new MongoClient("localhost");
        // mongoClient = new MongoClient( "localhost" , 27017 );
        // mongoClient = new MongoClient(Arrays.asList(new  ServerAddress("localhost", 27017), new ServerAddress("localhost", 27018), new ServerAddress("localhost", 27019)));

        //需要验证的如下
        // MongoCredential credential =  MongoCredential.createMongoCRCredential(userName, database, password);
        // MongoClient mongoClient = new MongoClient(new ServerAddress(),  Arrays.asList(credential));

        mongoClient.setWriteConcern(WriteConcern.JOURNALED);
        System.out.println("===========DatabaseName=============");
        for (String s : mongoClient.getDatabaseNames()) {
            System.out.println(s);
        }
        db = mongoClient.getDB("testdb");
    }

    @Test
    public void addDoc() {
        DBCollection coll = db.getCollection("person");
        BasicDBObject doc = new BasicDBObject("name", "张三")//
                .append("age", 20)//
                .append("gender", "mail")//
                .append("brithday", new Date())
                //
                .append("info",
                        new BasicDBObject("location_x", 203).append(
                                "location_y", 303));
        WriteResult result = coll.insert(doc);
        System.out.println(result);

        for (int i = 0; i < 10; i++) {
            BasicDBObject document = new BasicDBObject("name", "zhangsan" + i)//
                    .append("age", 18 + i)//
                    .append("brithday", new Date());
            WriteResult result2 = coll.insert(document);
            System.out.println(result2);
        }

    }

  2、查询文档

    @Test
    public void findDoc() {
        DBCollection coll = db.getCollection("person");
        DBObject person = coll.findOne();// 获取集合中的第一个文档
        System.out.println("===============findOne======================");
        System.out.println(person);

        // 根据条件查询;db.person.find({age:18});
        DBObject query = new BasicDBObject("age", 18);
        DBObject person2 = coll.findOne(query);
        System.out.println(person2);

        System.out
                .println("===============findByCondtion======================");
        // age小于25; db.person.find({age:{$lt:25}});
        query = new BasicDBObject("age", new BasicDBObject("$lt", 25));
        DBCursor cursor = coll.find(query);

        try {
            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }
        } finally {
            cursor.close();
        }
        System.out.println("===============findAll======================");
        // 查询所有并按照age升序;db.person.find().sort({age:1});
        cursor = coll.find().sort(new BasicDBObject("age", -1));// 1升序,-1降序
        try {
            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }
        } finally {
            cursor.close();
        }
    }

  3、更新文档

       @Test
    public void updateDoc() {
        DBCollection coll = db.getCollection("person");
        BasicDBObject query = new BasicDBObject("name", "张三");
        DBObject update = coll.findOne(query);
        update.put("info", new BasicDBObject("location_x", 1999).append(
                "location_y", 2999));
        // 方法一
        DBObject person = coll.findAndModify(query, update);// 返回的是未更改前的文档对象
        System.out.println(person);
        // 方法二
        update.put("info", new BasicDBObject("location_x", 19998).append(
                "location_y", 29998));
        WriteResult result = coll.update(query, update);
        System.out.println(result);
    }    

  4、删除文档

       @Test
    public void deleteDoc() {
        DBCollection coll = db.getCollection("person");
        BasicDBObject query = new BasicDBObject("name", "zhangsan8");

        // 方法一
        query = new BasicDBObject("name", "zhangsan9");
        DBObject person = coll.findAndRemove(query);// 返回的是删除的文档对象
        System.out.println(person);

        // 方法二
        query = new BasicDBObject("name", "zhangsan9");
        WriteResult result = coll.remove(query);
        System.out.println(result);
    }
 

  5、集合相关操作

       @Test
    public void testCollection() {
        Set<String> colls = db.getCollectionNames();// 数据库中的所有集合name
        for (String s : colls) {
            System.out.println(s);
        }
        System.out.println("=======================================");

        // 创建一个collection,并在collection中添加document
        DBCollection coll = db.createCollection("testCollection",
                new BasicDBObject("capped", true).append("size", 1048576));
        System.out.println(coll);

        coll = db.getCollection("testCollection");

        // collection中的索引
        List<DBObject> list = coll.getIndexInfo();
        for (DBObject o : list) {
            System.out.println(o);
        }

        coll.drop();
    }    
时间: 2024-10-14 16:52:15

mongodb--java操作的相关文章

java 对mongodb的操作

java 对mongodb的操作 1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017 Mongo mg = newMongo(ip);//可以指定ip 端口默认为27017 Mongo mg = newMongo(ip,port);//也可以指定ip及端口号 1.2连双台mongodb //ip为主机ip地址,port为端口号,dataBaseName相当于数据库名 DBAddress left = new DBAddre

java操作mongoDB数据库的简单实例

首先导入mongoDB的jar包 http://pan.baidu.com/s/1bnGMJRD //DataBase.java package com.mongodb.test; import java.net.UnknownHostException; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import

java操作mongoDB实现CURD

java操作mongoDB mongoDB作为一个牛气哄哄的nosql内存数据库,的确有很多优点,对于大数据量.高并发.弱事务的互联网应用,MongoDB可以应对自如.接触到mongoDB 参考了下api实现了增删改查.mongoDB 是面向对象设计,不用写sql语句 直接操作api 方法 就可以实现,这会儿数据库语句写不好的娃娃们有福了.直接贴码: DataTest.java package com.zk.db; import java.net.UnknownHostException; im

使用Java操作MongoDB

该篇比较简单,仅介绍Java操作MongoDB的简单CRUD案例,开搞前需要引入mongo-java-driver-3.2.2.jar,Java操作MongoDB的API众多,高级功能还需查询官方文档. public void insert() { // 建立数据库连接 Mongo mongo = new Mongo("localhost", 27017); // 获取指定的数据库 DB db = mongo.getDB("kaiye"); // 获取指定的集合 D

Java操作MongoDB

先引入mongo-java-dirver驱动 <!-- mongo-java-dirver --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.4.2</version> </dependency> 代码操作演示: package com.simpl

深入浅出MongoDB(六)java操作mongodb增删改查

java操作mysql数据库的代码我们已经了如指掌了,增删改查,java对mongodb数据库也是类似的操作,先是数据库连接,再是进行操作. 首先我们进入进入admin数据库,然后建立自己的数据库testMongoDb,进入admin数据库后,就可以直接进入testMongoDb,因为用户可以进入系统的数据库,就是超级管理员,use testMongoDb后,为该数据库设置用户名和密码,db.addUser('root','root'),这样我们在程序中连该数据库,并实现增删改查,代码如下所示.

【MongoDB for Java】Java操作MongoDB

开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开发依赖库: JavaEE5.mongo-2.5.3.jar.junit-4.8.2.jar 一.准备工作 1. 首先,下载mongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads mongoDB对Java的相关支持.技术:http://www.mongodb.org/

java操作mongodb(连接池)(转)

原文链接: java操作mongodb(连接池) Mongo的实例其实就是一个数据库连接池,这个连接池里默认有10个链接.我们没有必要重新实现这个链接池,但是我们可以更改这个连接池的配置.因为Mongo的实例就是一个连接池,所以,项目中最好只存在一个Mongo的实例. 常见的配置参数: connectionsPerHost:每个主机的连接数 threadsAllowedToBlockForConnectionMultiplier:线程队列数,它以上面connectionsPerHost值相乘的结

[转载]使用Java操作Mongodb

HelloWorld程序 学习任何程序的第一步,都是编写HelloWorld程序,我们也不例外,看下如何通过Java编写一个HelloWorld的程序. 首先,要通过Java操作Mongodb,必须先下载Mongodb的Java驱动程序,可以在这里下载. 新建立一个Java工程,将下载的驱动程序放在库文件路径下,程序代码如下: 1 package com.mkyong.core; 2 import java.net.UnknownHostException; 3 import com.mongo

MongDB基础学习(七)—— 【MongoDB for Java】Java操作MongoDB

[MongoDB for Java]Java操作MongoDB 开发的产品为了融资,不停得改版,从第一版到现在最新版本,最后发现公司发展方向都变了,有最初电子商务改成VR内容提供者(没办法,要别人钱,就得按照别人的规划的战略走).本来本章节会放到后面再做讲解,无奈,部门需要做一次培训任务,我就想到拿Java操作MongoDB作为培训内容,开发环境和依赖jar如下: (1)开发环境: System:Windows IDE:eclipse Database:mongoDB2.6 Maven:apac