MongoDB for Java
开发环境
操作系统: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的更多相关文章
- [MongoDB]MongoDB与JAVA结合使用CRUD
汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- 基于mongodb的java之增删改查(CRUD)
1,下载驱动https://github.com/mongodb/mongo-java-driver/downloads,导入工程java中 2,建立测试代码 import java.net.Unkn ...
- [转]MongoDB for Java】Java操作MongoDB
原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...
- mongodb在java驱动包下的操作(转)
推荐几章很有用的文章 java操作参考文档 http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html http://blog.csdn. ...
- mongodb的java客户端的设计思想
链接见http://api.mongodb.org/java/current/?_ga=1.111551751.200271495.1409034486 整体结构分为
- MongoDB资料--Java驱动, Hadoop驱动, Spark使用
MongoDB数据库备份: mongodump -h 192.168.1.160 -d MapLoc -o /usr/local/myjar/mongo/MapLoc/数据库还原:mongoresto ...
- MongoDB之Java测试代码(DAO层)
MongoInit.java是数据库初始化及连接类 MongoUtils.java是对mongodb的各种操作方法 MongoInit.java package com.wlwcloud.datate ...
- mongodb与java整合
mongodb与java整合需要用到mongodb驱动,如果是maven环境,则添加如下倚赖: <dependency> <groupId>org.mongodb</gr ...
- MongoDB的Java驱动使用整理 (转)
MongoDB Java Driver 简单操作 一.Java驱动一致性 MongoDB的Java驱动是线程安全的,对于一般的应用,只要一个Mongo实例即可,Mongo有个内置的连接池(池大小默认为 ...
随机推荐
- 性能测试 vs 负载测试 vs 压力测试
在做一些软件测试工作时,常常会被提及性能测试.负载测试.压力测试,这也是在软件测试方面最容易混淆的三个概念.之前和一个测试大牛聊天,他和我说常常面试一些测试人员会问一些这样的问题,大多人认为负载测试等 ...
- c常用函数
一.strtol long int strtol(const char *nptr, char **endptr, int base) strtol()会将nptr指向的字符串,根据参数base,按权 ...
- 并发编程>>并发级别(二)
理解并发 这是我在开发者头条看到的.@编程原理林振华 有目标的提升自己会事半功倍,前行的道路并不孤独. 1.阻塞 当一个线程进入临界区(公共资源区)后,其他线程必须在临界区外等待,待进去的线程执行完成 ...
- axiso 生产环境跨域配置(可用)
1.npm install axios 后 在main.js中import import Axios from 'axios'Vue.prototype.$http = Axios 2.请求配置 th ...
- 【App性能】:TraceView分析法
抓取traceview的日志有两种方式, 1,是在代码中片段中添加: Debug.startMethodTracing(“hello”); ....... Debug.stopMethodTracin ...
- [转] Linux History(历史)命令用法 15 例
[From]https://linuxtoy.org/archives/history-command-usage-examples.html 如果你经常使用 Linux 命令行,那么使用 histo ...
- laravel 表单接收
POST方式接收 视图层 <form action="/submit" method="post"> {{csrf_field()}} //必 ...
- ZigZag编码
ZigZag编码 在网络传输和数据存储场景中,需要对数据进行压缩.数据压缩的算法非常多,但大部分的数据压缩算法的原理是通过某种编码方式不存储数据中的0比特位,因此0比特位越多,数据压缩的效果越好.Zi ...
- Jexus进程守护工具jws.guard
一个运行中的进程,难免会因为各种各样的原因无缘无故的宕掉(比如网站瞬间的负载过高.内存不足等),而Jexus宕掉的后果往往只有一个:对外提供服务的网站无法访问了.因此,我们需要最大限度的保障我们的网站 ...
- javascript全局方法与变量
1.encodeURI(URI) a.作用:是对统一资源标识符(URI)进行编码的方法: b.参数:是一个完整的URI: c.特点:不需要对保留字以及在URI中有特殊意思的字符进行编码. (1).保留 ...