Mongo基于Java基本操作
1、使用Maven依赖相应jar
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>3.9.1</version>
</dependency>
2、获取客户端
MongoClient mongoClient = MongoClients.create();// 获取本地默认端口的mongoDB服务
3、获取数据库
MongoDatabase database = mongoClient.getDatabase("mongodb_test");
4、获取表
MongoCollection coll = database.getCollection("member");
5、针对表的CRUD操作
1)新增
Document doc = new Document("name", "MongoDB")
.append("type", "database")
.append("count", 1)
.append("versions", Arrays.asList("v3.2", "v3.0", "v2.6"))
.append("info", new Document("x", 203).append("y", 102));
coll.insertOne(doc);
2)查询
FindIterable<Document> results = coll.find();
for (Document result : results) {
System.out.println(result.getString("name"));
}
3)修改
UpdateResult result = coll.updateMany(eq("name", "MongoDB Michael"), new Document("$set", new Document("name", "MongoDB")));
System.out.println(result.getModifiedCount());
4)删除
DeleteResult result = coll.deleteMany(eq("type", "database"));
System.out.println(result.getDeletedCount());
6、删除表
coll.drop();
7、基于POJO的操作
需要设置CodecRegistry,能够让对象与BSON互相转化
比如:Member对象
@Data
public class Member {
private ObjectId id;
private String name;
private int age;
private String addr;
}
CodecProvider pojoCodecProvider = PojoCodecProvider.builder().register(Member.class).build();
CodecRegistry pojoCodecRegistry = fromRegistries(
fromCodecs(new StringCodec(),new IntegerCodec(),new ObjectIdCodec()) // 需要针对对象中的类型设置Codec
, fromProviders(pojoCodecProvider));
CodecRegistry
1)可以设置到MongoClient
MongoClientSettings settings = MongoClientSettings.builder().codecRegistry(pojoCodecRegistry).build();
MongoClient mongoClient = MongoClients.create(settings);
2)可以设置到数据库
database = database.withCodecRegistry(pojoCodecRegistry);
3)可以设置到表
collection = collection.withCodecRegistry(pojoCodecRegistry);
基于POJO的CRUD操作
1)新增
Member member =
new Member();
member.setName("Michael");
member.setAge(30);
member.setAddr("SZ");
coll.insertOne(member);
2)查询
FindIterable<Member> results = coll.find();
for (Member result : results) {
System.out.println(result);
}
3)修改
UpdateResult result = coll.updateMany(eq("age",30),set("age",18));
System.out.println(result);
4)删除数据
DeleteResult result = coll.deleteMany(eq("name","Michael"));
System.out.println(result);
5)删除表
coll.drop();
Mongo基于Java基本操作的更多相关文章
- 9个基于Java的搜索引擎框架
在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的整容医疗机构(尽管有很大一部分广 ...
- 基于java平台的常用资源整理
这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...
- 基于Java的打包jar、war、ear包的作用与区别详解
本篇文章,小编为大家介绍,基于Java的打包jar.war.ear包的作用与区别详解.需要的朋友参考下 以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.cla ...
- 基于Java Netty框架构建高性能的部标808协议的GPS服务器
使用Java语言开发一个高质量和高性能的jt808 协议的GPS通信服务器,并不是一件简单容易的事情,开发出来一段程序和能够承受数十万台车载接入是两码事,除去开发部标808协议的固有复杂性和几个月长周 ...
- 基于Java Mina框架的部标808服务器设计和开发
在开发部标GPS平台中,部标808GPS服务器是系统的核心关键,决定了部标平台的稳定性和行那个.Linux服务器是首选,为了跨平台,开发语言选择Java自不待言. 我们为客户开发的部标服务器基于Min ...
- 这里整理了基于java平台的常用资源
这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...
- 基于java的设计模式入门(1)——为什么要学习设计模式
大年初一,楼主在这里给大家拜年,祝大家码上升职加薪,码上有对象结婚,码上有车有房,幸福安康. 过完年,回学校注册报道之后,大概就要回深圳到公司开始实习了.提高自己,无非就有两种方式,一是看书学习,二是 ...
- WebDriver基本API使用(基于Java)V1.0
WebDriver基本API使用(基于Java)V1.0http://www.docin.com/p-803032877.html
- WebDriver基本API使用手册(基于Java和C#)
WebDriver基本API使用手册(基于Java和C#) http://www.docin.com/p-747728551.html
随机推荐
- python基础课程讲解
day01: 编程语言的介绍: 一 1.什么是编程?(****) 两个环节: 1.把做事的思维逻辑给想清楚了 2.用计算机能听懂的语言也就是编程语言把做事的步骤给翻译下来 2.为什么要编程? 人要奴役 ...
- GO文件读写03---使用缓冲读写实现视频文件的拷贝
package main import ( "bufio" "fmt" "io" "os" ) /* ·使用缓冲读写实现 ...
- 5G通讯与芯片
5G通讯与芯片 美国商务部可能接近达成一项新的规则,允许美国公司与华为重启谈判,在共同制定下一代通信技术5G标准方面进行合作. 华为美国首席安全官安迪·珀迪(Andy Purdy)向第一财经记者独家回 ...
- Django框架之路由层汇总
一 Django中路由的作用 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来 ...
- 谷歌chrome浏览器network中Stalled分析和优化
谷歌chrome浏览器network中Stalled分析和优化 问题由来 最近项目上要求首页的加载速度,查看浏览器的network发现接口加载速度非常慢. 问题解决思路 SSL 网上有人因为图片加载, ...
- 【Android编程】Java利用apktool编写Metasploit恶意后门注入工具
/声明:本文作者Kali_MG1937 csdn博客id:ALDYS4 QQ:3496925334 未经许可禁止转载!/ 注意,本文为作者从CSDN搬迁至此的文章 注意!此文章虽然 未被 作者标记到 ...
- MySQL8性能优化
MySQL8.0 引擎: 来看看MySQL8提供的引擎: 常用引擎: InnoDB:支持事务,行级锁,外键,崩溃修复,多版本并发控制:读写效率相对较差,内存使用相对较高,占用数据空间相对较大. MyI ...
- 理解Spring:IOC的原理及手动实现
Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架.也是几乎所有Java工作者必须要掌握的框架之一,其优秀的设计思想以及其代码实现上的艺术也是我们需要掌握的. ...
- perror()函数的使用
perror()函数的功能是打印一个系统错误信息. perror()函数在Linux系统中属于库函数,在头文件中有如下定义: #include <stdio.h> ...
- .NET解密得到UnionID
由于微信没有提供.NET的解码示例代码,自己搜索写了一个,下面的代码是可用的 var decryptBytes = Convert.FromBase64String(encrypdata); var ...