开发环境

  • 操作系统:Windows7

  • IDE: MyEclipse

  • Database: MongoDB

开发依赖库

  • bson-3.0.1.jar

  • mongodb-driver-3.0.1.jar

  • mongodb-driver-core-3.0.1.jar

  • junit-4.12.jar

  • hamcrest-core-1.3.jar

PS:前三个必须引入(版本可不同),后两个为 junit 测试所用

一、准备环境

1、下载mongoDB对Java支持的驱动包

下载地址:mongodb 也可以使用Maven管理,Maven 代码片段如下:

<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>bson</artifactId>
        <version>3.0.1</version>
    </dependency>

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver</artifactId>
        <version>3.0.1</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

2、建立Java Project工程,导入驱动包,目录结构如下

二、Java操作 MongoDB

1、建立连接

连接数据库,需要指定数据库名,如果数据库不存在,MongoDB会自动创建它。

使用 MongoClient 来连接 MongoDB,代码片段如下:

// connect to mongodb server
MongoClient mongoClient = new MongoClient("localhost", 27017);
// connect database
MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb");

2、创建集合

要创建集合,使用 com.mongodb.client.MongoDatabase 类的 createCollection() 方法。

mongoDatabase.createCollection("person");

3、获取一个集合列表

要获取数据库中的所有集合,使用 com.mongodb.client.MongoDatabase 类的 listCollectionNames() 方法。

MongoIterable<String> result = mongoDatabase.listCollectionNames();

Iterator ite = result.iterator();
while (ite.hasNext()) {
    System.out.println("集合名字:" + ite.next());
}

4、获取/选择一个集合

要从数据库中获得/选择一个集合,使用 com.mongodb.client.MongoDatabase 类的 getCollection() 方法。

代码片段获取/选择一个集合

MongoCollection<Document> collection = mongoDatabase.getCollection("person");

5、插入文档

为了将文档插入MongoDB中,使用 com.mongodb.client.MongoCollection 类的 insertOne() 方法。

代码片段插入一个文件

MongoCollection<Document> collection = mongoDatabase.getCollection("person");
Document document = new Document("title", "MongoDB")
        .append("description", "database")
        .append("by","itmyhome");
collection.insertOne(document);

6、检索所有文件

要检索一个集合中的所有文件,使用 com.mongodb.client.MongoCollection 类的 find() 方法。

MongoCollection<Document> collection = mongoDatabase.getCollection("person");

FindIterable<Document> document = collection.find();
Iterator ite = document.iterator();

while (ite.hasNext()) {
    System.out.println(ite.next());
}

7、更新文件

从集合中更新文件,使用 com.mongodb.client.MongoCollection 类的 updateMany() 和 updateOne() 方法。

下面代码片段是将name为zhangsan的mobile信息修改为11011

MongoCollection<Document> collection = mongoDatabase.getCollection("person");
collection.updateOne(Filters.eq("name", "zhangsan"), new Document("$set", new Document("mobile", "11011")));

8、删除文件

从集合中删除文件,使用 com.mongodb.client.MongoCollection 类的 deleteMany() 和 deleteOne() 方法。

下面代码片段是删除title为MongoDB的所有文件

MongoCollection<Document> collection = mongoDatabase.getCollection("person");
collection.deleteMany(Filters.all("title", "MongoDB"));

完整代码

import java.util.Iterator;
import org.bson.Document;
import org.junit.Test;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;

/**
 * http://itmyhome.com
 * 作者: itmyhome
 */
public class CopyOfDBUtil {

    // 连接到 mongodb 服务
    MongoClient mongoClient = null;
    // 连接到数据库
    MongoDatabase mongoDatabase = null;

    /**
     * 构造方法实例化
     */
    public CopyOfDBUtil() {
        mongoClient = new MongoClient("localhost", 27017);
        mongoDatabase = mongoClient.getDatabase("mydb");
        System.out.println("Connect to database successfully: " + mongoDatabase);

    }

    /**
     * 创建集合
     */
    @Test
    public void createCollection(String collectionName) {
        mongoDatabase.createCollection(collectionName);
        System.out.println("集合: " + collectionName + " 创建成功");
    }

    /**
     * 获取所有集合
     */
    @Test
    public void getCollection() {
        MongoIterable<String> result = mongoDatabase.listCollectionNames();

        Iterator ite = result.iterator();
        while (ite.hasNext()) {
            System.out.println("集合名字:" + ite.next());
        }
    }

    /**
     * 删除集合
     */
    @Test
    public void dropCollection(String collectionName) {
        mongoDatabase.getCollection(collectionName).drop();
        System.out.println("集合:" + collectionName + " 删除成功");
    }

    /**
     * 插入文档
     */
    @Test
    public void insert() {

        // 获取所插入集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("person");
        Document document = new Document("title", "MongoDB")
                .append("description", "database")
                .append("by","itmyhome");
        collection.insertOne(document);
    }

    /**
     * 检索所有文件
     */
    @Test
    public void queryAll() {
        MongoCollection<Document> collection = mongoDatabase.getCollection("person");

        FindIterable<Document> document = collection.find();
        Iterator ite = document.iterator();

        while (ite.hasNext()) {
            System.out.println(ite.next());
        }
    }

    /**
     * 更新文件
     */
    @Test
    public void update(){
        MongoCollection<Document> collection = mongoDatabase.getCollection("person");
        collection.updateOne(Filters.eq("name", "zhangsan"),
            new Document("$set", new Document("mobile", "11011")));
    }

    /**
     * 删除文档
     */
    @Test
    public void deleteAllDocument() {
        MongoCollection<Document> collection = mongoDatabase.getCollection("person");
        collection.deleteMany(Filters.all("title", "MongoDB"));
        System.out.println("删除成功");
    }

    /**
     * 条件查询
     */
    @Test
    public void find() {
        MongoCollection<Document> collection = mongoDatabase.getCollection("person");
        //查询likes为100的数据
        FindIterable<Document> document = collection.find(Filters.lt("likes",100));

        Iterator ite = document.iterator();
        while (ite.hasNext()) {
            System.out.println(ite.next());
        }
    }
}

作者:itmyhome

MongoDB for Java的更多相关文章

  1. [MongoDB]MongoDB与JAVA结合使用CRUD

    汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...

  2. 【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  3. 基于mongodb的java之增删改查(CRUD)

    1,下载驱动https://github.com/mongodb/mongo-java-driver/downloads,导入工程java中 2,建立测试代码 import java.net.Unkn ...

  4. [转]MongoDB for Java】Java操作MongoDB

    原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...

  5. mongodb在java驱动包下的操作(转)

    推荐几章很有用的文章 java操作参考文档 http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html http://blog.csdn. ...

  6. mongodb的java客户端的设计思想

    链接见http://api.mongodb.org/java/current/?_ga=1.111551751.200271495.1409034486 整体结构分为

  7. MongoDB资料--Java驱动, Hadoop驱动, Spark使用

    MongoDB数据库备份: mongodump -h 192.168.1.160 -d MapLoc -o /usr/local/myjar/mongo/MapLoc/数据库还原:mongoresto ...

  8. MongoDB之Java测试代码(DAO层)

    MongoInit.java是数据库初始化及连接类 MongoUtils.java是对mongodb的各种操作方法 MongoInit.java package com.wlwcloud.datate ...

  9. mongodb与java整合

    mongodb与java整合需要用到mongodb驱动,如果是maven环境,则添加如下倚赖: <dependency> <groupId>org.mongodb</gr ...

  10. MongoDB的Java驱动使用整理 (转)

    MongoDB Java Driver 简单操作 一.Java驱动一致性 MongoDB的Java驱动是线程安全的,对于一般的应用,只要一个Mongo实例即可,Mongo有个内置的连接池(池大小默认为 ...

随机推荐

  1. Java中静态变量的声明位置

    Java中静态变量只能是成员变量,局部方法中的局部变量除final外不能有任何其他修饰符,例如: public class Test { static String x = "1" ...

  2. python全栈开发学习_内容目录及链接

    python全栈开发学习_day1_计算机五大组成部分及操作系统 python全栈开发学习_day2_语言种类及变量 python全栈开发_day3_数据类型,输入输出及运算符 python全栈开发_ ...

  3. 使用go写一个简单的exe文件

    工作需要一个小工具给分析师用,原先打算写一个脚本的,但是呢我又不会用python,要写的话只能用java来实现(打包成可执行jar,使用java -jar 的命令来执行,当然得安装jdk).这种命令行 ...

  4. 04-树5 Root of AVL Tree (25 分)

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...

  5. Mac使用Launchd命令行lauchctl操作服务的简单用法

    注意:操作时前面比如带上sudo,不然只能操作当前用户的服务,会出现无法操作一些root用户的服务的问题.系统版本为Mac 10.12. 1.配置好plist之后: #加载一个服务到启动列表 sudo ...

  6. eclipse中怎样添加项目至SVN资源库

    转自:https://jingyan.baidu.com/article/642c9d341caac0644a46f73e.html 这是一个SVN最基本的一个使用方法,转一篇别人写的,方便日后查询. ...

  7. 【文档】一、Mysql Binlog概述

    Binlog是一系列日志文件,他们包含的内容是Mysql数据内容的改变.如果想开启binlog功能,需要在启动时带上--log-bin参数. binlog是从Mysql3.23.14版本开始的.它包含 ...

  8. uvm_config_db在UVM验证环境中的应用

    如何在有效的使用uvm_config_db来搭建uvm验证环境对于许多验证团队来说仍然是一个挑战.一些验证团队完全避免使用它,这样就不能够有效利用它带来的好处:另一些验证团队却过多的使用它,这让验证环 ...

  9. 第一章:初识PHP

    Web程序工作原理介绍? 工作方式? 浏览器首先向Web服务器发出请求,Web服务器对请求做出响应,将响应数据发送给客户端浏览器,通常是一个HTML文件,然后通过浏览器把HTML文件信息显示在屏幕上. ...

  10. nodejs学习笔记一( sublime、atom开发环境,http模块,fs模块的初识)

    http服务   let server = http.createServer(function(req,res){       });   监听: server.listen(8080);   re ...