新建maven项目,添加依赖:

 <dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>

测试代码:

 package com.skyer.test;

 import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import org.bson.Document;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.QueryOperators;
import com.mongodb.client.ListIndexesIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult; public class TestMongo { // 声明相关变量
MongoClientURI connectionString = null;
MongoClient mongoClient = null;
MongoDatabase database = null;
MongoCollection<Document> collection = null; /**
* 获取相关对象
*/
@Before
public void getConnection() {
connectionString = new MongoClientURI("mongodb://192.168.88.128:27017"); // 服务器连接地址
mongoClient = new MongoClient(connectionString); // 获取客户端对象
database = mongoClient.getDatabase("skyer"); // 获取数据库
collection = database.getCollection("test"); // 获取连接
} /**
* 添加一个
*/
@Test
public void insert() {
Document doc = new Document("name", "skyer")
.append("type", "database")
.append("count", 1)
.append("versions", Arrays.asList("v2.7", "v4.2", "v7.2"))
.append("info", new Document("x", 27).append("y", 42));
collection.insertOne(doc);
} /**
* 批量添加
*/
@Test
public void insertMany() {
List<Document> docs = new ArrayList<Document>();
for (int i = 0; i < 100; i++) {
docs.add(new Document("i", i));
}
collection.insertMany(docs);
} /**
* 查询首个
*/
@Test
public void queryFirst() {
Document doc = collection.find().first();
System.out.println(doc.toJson());
} /**
* 查询全部
*/
@Test
public void findAll() {
for (Document doc : collection.find()) {
System.out.println(doc.toJson());
}
} /**
* 查询全部
*/
@Test
public void findAll2() {
MongoCursor<Document> cursor = collection.find().iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} /**
* 分页查询
*/
@Test
public void findByPage() {
MongoCursor<Document> cursor = collection.find().skip(0).limit(5).iterator(); // 查询前五个记录
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} /**
* 查询一个
*/
@Test
public void findOne() {
Document doc = collection.find(new Document("i", 27)).first(); // 查询i值为27的记录
System.out.println(doc.toJson());
} /**
* 条件查询
*/
@Test
public void findByCondition1() {
BasicDBObject condition = new BasicDBObject("i", new BasicDBObject(QueryOperators.GT, 95)); // 查询i大于95的记录
MongoCursor<Document> cursor = collection.find(condition).iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} /**
* 条件查询
*/
@Test
public void findByCondition2() {
BasicDBObject condition = new BasicDBObject(QueryOperators.AND,
new BasicDBObject[] {
new BasicDBObject().append("i", new BasicDBObject(QueryOperators.GT, 95)),
new BasicDBObject().append("i", new BasicDBObject(QueryOperators.LTE, 97))
}); // 查询95<i<=97的记录
MongoCursor<Document> cursor = collection.find(condition).iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} /**
* 条件查询:in
*/
@Test
public void testIn() {
BasicDBObject condition = new BasicDBObject("i", new BasicDBObject(QueryOperators.IN, new int[] {27, 42}));
MongoCursor<Document> cursor = collection.find(condition).iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} /**
* 条件查询:not in
*/
@Test
public void testNotIn() {
BasicDBObject condition = new BasicDBObject("i", new BasicDBObject(QueryOperators.NIN, new int[] {34, 47}));
MongoCursor<Document> cursor = collection.find(condition).iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} /**
* 创建普通索引
*/
@Test
public void createIndex() {
String result = collection.createIndex(new BasicDBObject("name", 1));
System.out.println(result);
} /**
* 创建文本索引
*/
@Test
public void createTextIndex() {
String result = collection.createIndex(new Document("name", "text"));
System.out.println(result);
} /**
* 获取所有索引
*/
@Test
public void getAllIndex() {
ListIndexesIterable<Document> list = collection.listIndexes();
for (Document doc : list) {
System.out.println(doc.toJson());
}
} /**
* 删除
*/
@Test
public void testDelete() {
DeleteResult result = collection.deleteOne(new BasicDBObject("i", 2));
System.out.println(result.getDeletedCount());
} /**
* 批量删除
*/
@Test
public void testDeleteMany() {
DeleteResult result = collection.deleteMany(new BasicDBObject("i", new BasicDBObject(QueryOperators.IN, new int[] {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
})));
System.out.println(result.getDeletedCount());
} /**
* 更新
*/
@Test
public void testUpdateOne() {
UpdateResult result = collection.updateOne(new BasicDBObject("i", 10), new Document("$set", new Document("i", 110)));
System.out.println(result.getMatchedCount());
} /**
* 释放资源
*/
@After
public void releaseConnection() {
mongoClient.close();
} }

MongoDB简单操作(java版)的更多相关文章

  1. .Net Core MongoDB 简单操作。

    一:MongoDB 简单操作类.这里引用了MongoDB.Driver. using MongoDB.Bson; using MongoDB.Driver; using System; using S ...

  2. MongoDB简单操作

    Hadoop核心技术厂商Cloudera将在2014/06推出hadoop Ecosystem与MongoDB的整合产品,届时MongoDB与ipmala及hbase,hive一起用; 开源linux ...

  3. MongoDB 简单操作

    MongoDB操作 之 原生ORM,根本不存在SQL语句,数据之间不存在联系 查看数据库(查看磁盘中的数据库) > show databases; 使用数据库 > use local 创建 ...

  4. Node js MongoDB简单操作

    //win7环境下node要先安装MongoDB的相关组件(非安装MongoDB数据库),在cmd命令行进入node项目目录后执行以下语句 //npm install mongodb //创建连接 v ...

  5. java版gRPC实战之二:服务发布和调用

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. 【云栖社区001-数据结构】如何实现一个高效的单向链表逆序输出(Java版)

    如题 动手之前,发现自己很擅长用C语言来写链表. 不过,既然自己做的是Java开发,那么还是用Java实现这个算法吧:毕竟,以后的若干年里都差不多要跟Java打交道了. 于是,先将Java版的链表自学 ...

  7. SWFUpload简单使用样例 Java版(JSP)

    SWFUpload官方的样例都是PHP的,在这里提供一个Java版的最简单的使用样例,使用JSP页面完毕全部操作. 实现上传,分为三步: 1.JavaScript设置SWFUpload部分(与官方样例 ...

  8. java 对mongodb的操作

    java 对mongodb的操作 1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017 Mongo mg = newMongo( ...

  9. ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作

    1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其 ...

随机推荐

  1. angular点击查看更多(简单demo)

    今天来跟大家分享一个小的demo,一般网页浏览到底部的时候会有一个点击加载更多的按钮,之前一直纠结怎么写这个,今天学习angular时发现可以用组件来实现这么一个小的效果,大家有兴趣的话可以看一下. ...

  2. #2019-2020-4 《Java 程序设计》第七周总结

    2019-2020-4 <Java 程序设计>第七周知识总结 第八章:常用实用类 一.String类 String类的构造方法 public String(byte[] bytes); p ...

  3. 2019.03.28 bzoj3322: [Scoi2013]摩托车交易(kruskal重构树+贪心)

    传送门 题意咕咕咕 思路: 先把所有可以列车通的缩成一个点,然后用新图建立kruskalkruskalkruskal重构树. 这样就可以倒着贪心模拟了. 代码: #include<bits/st ...

  4. Python环境安装及IDE介绍

    因为最近时间比较松散,公司的业务也不多,所以想趁机赶紧投入到人工智能的学习大业当中.经过多次比较,看到目前市面上还是使用Python做为基础语言较多,进儿学习算法.人工智能组件.机器学习.数据挖掘等课 ...

  5. MySQL基础知识3

  6. Kali 2017 使用SSH进行远程登录 设置 ssh 开机自启动

    一.配置SSH参数 修改sshd_config文件,命令为: vi /etc/ssh/sshd_config 输入“ /Pass ”回车搜索 找到#PasswordAuthentication no的 ...

  7. angular-控制器

    controller 控制器 四.作用域:($rootScope)对整个页面相当于全局变量 也就是只要是用$rootScope定的东西它一定是作用于全局,而其它的只是对它控制器所在的那一部分 列如: ...

  8. RPC知识

    说明:RPC框架的目标就是让远程服务调用更加简单.透明,RPC框架负责屏蔽底层的传输方式(TCP或UDP).序列化(XML/json/二进制)和通信细节.服务调用者可以像调用本地接口一样调用远程的服务 ...

  9. Email发展历史

    据我所知:1987年9月20日,有“中国互联网第一人”之称的钱天白从北京经意大利向前联邦德国卡尔斯鲁厄大学发出了中国第一封电子邮件,内容是“ 穿越长城,走向世界”.这是中国人在网络上的第一步,他开创了 ...

  10. 移动APP外挂攻防实战

    前言 近日,某某龙在2018年的一次会议上发表了一个演讲,4000多人聚集在现场玩“跳一跳”游戏.随着他们指尖的翻飞跳跃,大屏幕上的现场排名也在不断刷新……而在全场的惊叹声中,最高分出现了,967分! ...