新建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. Python 打印矩形、直角三角形、等腰三角形、菱形

    # 1)打印一个星号 print('*') #2)打印一行6个星号 * * * * * * for i in range(6): print('*',end=' ') #3)打印6列星号 * * * ...

  2. 从文件中读取数组数据————Java

    自己总结一下Java文件的读取类似数组数据的方法,自己可以快速查看. 一.规整化数据: 对于数组数据是一一对应的情况 ArrayList<String> arrayList = new A ...

  3. vuex的getters处理数据

    getters是用来处理state里的数据的 getters传递一个值state 例子: store.js import Vue from 'vue' import Vuex from 'vuex' ...

  4. Unity3D InputManager详解

    首先说一下 Input 类,这个类很常用,API 大家基本都知道,这里记录几个使用频率没那么高的 API Input.acceleration:重力加速度传感器的值,加速度的方向,适用于移动平台. I ...

  5. Lucene用法示例

    整理一下 ELK 和 Grafana 中会用到的 Lucene 用法: 通配符 示例1:过滤出 url 中包含 .pw/ 的 网址 url.keyword:*.pw\/* 正则表达式 示例1:过滤出 ...

  6. 个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 2

    接上篇:个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 1 Step1 在主程序中设置连接数据库 从Model类库的 App.Config 把数据库字符串拷贝出来, ...

  7. centos7下zabbix记录

    Zabbixrpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm - ...

  8. HTML5元素标记释义

    HTML5元素标记释义 标记 类型 意义 介绍 文件标记 <html> ● 根文件标记 让浏览器知道这是HTML 文件 META标记 <head> ● 开头 提供文件整体信息 ...

  9. day24_雷神_django项目部署

    # django项目部署 ... curl -I www.baidu.com 得到响应头信息 vim 里shift + % 找括号的另一半 find / -name virtualenv 3.创建虚拟 ...

  10. [转] KVM scalability and consolidation ratio: cache none vs cache writeback

    http://www.ilsistemista.net/index.php/virtualization/43-kvm-scalability-and-consolidation-ratio-cach ...